UNPKG

jordium-gantt-vue3

Version:

A modern, flexible, and feature-rich Gantt chart component library for Vue 3

18,533 lines 960 kB
import { ref as IA, computed as pe, defineComponent as vr, watch as Je, createElementBlock as FA, openBlock as wA, createElementVNode as N, withDirectives as Er, toDisplayString as kA, unref as de, vModelText as Ln, createCommentVNode as Be, withModifiers as Br, Fragment as Ve, nextTick as pt, onMounted as Sr, onUnmounted as wr, createBlock as Dr, Teleport as il, normalizeStyle as At, createVNode as xr, createTextVNode as Tt, normalizeClass as Me, resolveComponent as Og, createStaticVNode as Yn, renderList as ht, Transition as Rg, withCtx as Kg, reactive as Wo, vModelSelect as Mo, withKeys as Vg } from "vue";
const Nc = {
  "zh-CN": {
    // TaskList Header
    taskName: "任务名称",
    predecessor: "前置任务",
    assignee: "分配人",
    startDate: "开始日期",
    endDate: "结束日期",
    estimatedHours: "预计工时(hr)",
    actualHours: "实际工时(hr)",
    progress: "进度",
    type: "类型",
    description: "描述",
    // CSV Export Headers(去除重复,仅保留引用)
    csvHeaders: {
      id: "ID",
      taskName: "任务名称",
      predecessor: "前置任务",
      assignee: "分配人",
      startDate: "开始日期",
      endDate: "结束日期",
      estimatedHours: "预计工时(hr)",
      actualHours: "实际工时(hr)",
      progress: "进度(%)",
      type: "类型",
      description: "描述"
    },
    // 日期格式
    yearMonthFormat: (t, e) => `${t}年${String(e).padStart(2, "0")}月`,
    // 月份格式
    monthFormat: (t) => `${t}月`,
    // 其他
    milestone: "里程碑",
    today: "今天",
    // 里程碑对话框
    milestoneDetails: "里程碑详情",
    milestoneName: "里程碑名称",
    milestoneDate: "里程碑日期",
    milestoneIcon: "里程碑图标",
    diamond: "菱形",
    rocket: "火箭",
    enterMilestoneName: "请输入里程碑名称",
    enterAssignee: "请输入负责人",
    enterDescription: "请输入描述信息",
    milestoneNameRequired: "里程碑名称为必填项",
    milestoneDateRequired: "里程碑日期为必填项",
    save: "保存",
    close: "关闭",
    confirm: "确认",
    delete: "删除",
    confirmDelete: "确定要删除这个里程碑吗?",
    // 工具栏按钮
    addTask: "新增需求/任务",
    addMilestone: "新增里程碑",
    todayLocate: "今日",
    todayLocateTooltip: "定位到今天",
    exportCsv: "导出 CSV",
    exportPdf: "导出 PDF",
    language: "中文",
    languageTooltip: "选择语言",
    lightMode: "明亮模式",
    darkMode: "暗黑模式",
    fullscreen: "全屏",
    exitFullscreen: "退出全屏",
    githubDocs: "查看Github文档",
    giteeDocs: "查看Gitee文档",
    // 时间刻度按钮
    timeScaleMonth: "月",
    timeScaleWeek: "周",
    timeScaleDay: "日",
    timeScaleTooltip: "切换时间刻度",
    // 确认对话框
    confirmDialogMessage: "是否需要保留该设置?",
    // 新建任务对话框
    newTask: "新建任务",
    taskNamePlaceholder: "请输入任务名称",
    assigneePlaceholder: "请输入负责人",
    progressPlaceholder: "0-100",
    hoursPlaceholder: "工时",
    descriptionPlaceholder: "请输入任务描述...",
    hours: "小时",
    create: "创建",
    taskNameRequired: "任务名称不能为空",
    startDateRequired: "开始日期不能为空",
    endDateRequired: "结束日期不能为空",
    endDateInvalid: "结束日期不能早于开始日期",
    // 新建里程碑对话框
    newMilestone: "新建里程碑",
    editMilestone: "编辑里程碑",
    cancel: "取消",
    // 右键菜单
    startTimer: "开始计时",
    stopTimer: "停止计时",
    timerStarted: "任务计时已开始",
    timerStopped: "任务计时已停止",
    addPredecessor: "添加前置任务",
    addSuccessor: "添加后置任务",
    // PDF导出相关
    pdfExportLoading: "正在生成PDF,请稍候...",
    pdfExportTitle: "甘特图导出",
    pdfExportDate: "导出日期",
    milestoneGroup: "里程碑",
    collapseTaskList: "收起任务列表",
    expandTaskList: "展开任务列表",
    // TaskDrawer 相关
    taskType: "任务类型",
    taskTypeRequired: "请选择任务类型",
    taskTypeMap: {
      task: "任务",
      milestone: "里程碑",
      story: "需求",
      epic: "史诗",
      bug: "缺陷"
    },
    editTask: "编辑任务",
    parentTask: "上级任务",
    noParentTask: "无上级任务",
    update: "更新",
    taskNameTooLong: "任务名称不能超过50个字符",
    predecessorPlaceholder: "请选择前置任务",
    selectPredecessor: "选择前置任务",
    removePredecessor: "移除前置任务",
    operationFailed: "操作失败,请重试",
    taskUpdateSuccess: "任务更新成功",
    taskCreateSuccess: "任务创建成功",
    confirmDeleteTask: '确定要删除任务"{name}"吗?此操作不可撤销。',
    taskDeleteFailed: "删除失败,请重试",
    // Story删除相关
    confirmDeleteStory: "是否删除该需求{name}及其所有的子任务?该操作不可撤回",
    storyDeleteYes: "是, 继续",
    storyDeleteNo: "不,仅删除需求",
    storyDeleteAllSuccess: "已删除需求【{name}】及其所有子任务",
    storyDeleteOnlySuccess: "已删除需求【{name}】,{count}个子任务已升级保留",
    storyNotFound: "未找到要删除的需求,ID:{id}",
    // 里程碑删除成功
    milestoneDeleteSuccess: "里程碑删除成功",
    // 其他删除成功消息
    taskDeletedSuccess: "已删除任务",
    // 选择器占位符
    selectAssignee: "请选择负责人",
    // 通用消息
    customCsvExportCalled: "自定义CSV导出被调用",
    languageSwitchedTo: "语言切换到:{language}",
    themeSwitchedTo: "主题切换到:{theme}",
    lightModeText: "明亮模式",
    darkModeText: "暗黑模式",
    taskNotFound: "未找到要更新的任务,ID:{id}",
    newParentTaskNotFound: "未找到新父任务,ID:{parentId},将作为顶级任务添加",
    inPlaceUpdateFailed: "就地更新失败,未找到任务,ID:{id}",
    taskToDeleteNotFound: "未找到要删除的任务,ID:{id}",
    milestoneIconUpdateNotFound: "未找到要更新图标的里程碑,ID:{id}",
    overtime: "超",
    overdue: "逾期",
    days: "天",
    // 计时确认弹窗
    timerConfirmPrefix: "即将为任务",
    timerConfirmSuffix: "计时,若有特殊说明请完善下面的描述",
    timerConfirmPlaceholder: "请输入计时说明"
  },
  "en-US": {
    // TaskList Header
    taskName: "Task Name",
    predecessor: "Predecessor",
    assignee: "Assignee",
    startDate: "Start Date",
    endDate: "End Date",
    estimatedHours: "Est. Hours",
    actualHours: "Act. Hours",
    progress: "Progress",
    type: "Type",
    // CSV Export Headers(去除重复,仅保留引用)
    csvHeaders: {
      id: "ID",
      taskName: "Task Name",
      predecessor: "Predecessor",
      assignee: "Assignee",
      startDate: "Start Date",
      endDate: "End Date",
      estimatedHours: "Est. Hours",
      actualHours: "Act. Hours",
      progress: "Progress (%)",
      type: "Type",
      description: "Description"
    },
    // 日期格式
    yearMonthFormat: (t, e) => `${t}/${String(e).padStart(2, "0")}`,
    // 月份格式
    monthFormat: (t) => `M${String(t).padStart(2, "0")}`,
    // 其他
    milestone: "Milestone",
    today: "Today",
    // 里程碑对话框
    milestoneDetails: "Milestone Details",
    milestoneName: "Milestone Name",
    milestoneDate: "Milestone Date",
    milestoneIcon: "Milestone Icon",
    diamond: "Diamond",
    rocket: "Rocket",
    enterMilestoneName: "Enter milestone name",
    enterAssignee: "Enter assignee",
    enterDescription: "Enter description",
    milestoneNameRequired: "Milestone name is required",
    milestoneDateRequired: "Milestone date is required",
    save: "Save",
    close: "Close",
    confirm: "Confirm",
    description: "Description",
    delete: "Delete",
    confirmDelete: "Are you sure you want to delete this milestone?",
    // 工具栏按钮
    addTask: "Add Requirement/Task",
    addMilestone: "Add Milestone",
    todayLocate: "Today",
    todayLocateTooltip: "Locate to today",
    exportCsv: "Export CSV",
    exportPdf: "Export PDF",
    language: "English",
    languageTooltip: "Select language",
    lightMode: "Light Mode",
    darkMode: "Dark Mode",
    fullscreen: "Fullscreen",
    exitFullscreen: "Exit Fullscreen",
    githubDocs: "GitHub Docs",
    giteeDocs: "Gitee Docs",
    // 时间刻度按钮
    timeScaleMonth: "Month",
    timeScaleWeek: "Week",
    timeScaleDay: "Day",
    timeScaleTooltip: "Switch Time Scale",
    // Confirm dialog
    confirmDialogMessage: "Do you want to save this setting?",
    taskNamePlaceholder: "Enter task name",
    assigneePlaceholder: "Enter assignee",
    progressPlaceholder: "0-100",
    hoursPlaceholder: "Hours",
    descriptionPlaceholder: "Enter task description...",
    hours: "Hours",
    create: "Create",
    taskNameRequired: "Task name is required",
    startDateRequired: "Start date is required",
    endDateRequired: "End date is required",
    endDateInvalid: "End date cannot be earlier than start date",
    // 新建里程碑对话框
    newMilestone: "New Milestone",
    editMilestone: "Edit Milestone",
    cancel: "Cancel",
    // Context menu
    timerStarted: "Timer Started",
    timerStopped: "Timer Stopped",
    startTimer: "Start Timer",
    stopTimer: "Stop Timer",
    addPredecessor: "Add Predecessor",
    addSuccessor: "Add Successor",
    // PDF export
    pdfExportLoading: "Generating PDF, please wait...",
    pdfExportTitle: "Gantt Chart Export",
    pdfExportDate: "Export Date",
    milestoneGroup: "Milestone",
    collapseTaskList: "Collapse Task List",
    expandTaskList: "Expand Task List",
    // TaskDrawer related
    taskType: "Task Type",
    taskTypeRequired: "Please select task type",
    taskTypeMap: {
      task: "Task",
      milestone: "Milestone",
      story: "Story",
      epic: "Epic",
      bug: "Bug"
    },
    editTask: "Edit Task",
    newTask: "New Task",
    parentTask: "Parent Task",
    noParentTask: "No Parent Task",
    update: "Update",
    taskNameTooLong: "Task name cannot exceed 50 characters",
    predecessorPlaceholder: "Select predecessor",
    selectPredecessor: "Select Predecessor",
    removePredecessor: "Remove Predecessor",
    operationFailed: "Operation failed, please try again",
    taskUpdateSuccess: "Task updated successfully",
    taskCreateSuccess: "Task created successfully",
    confirmDeleteTask: 'Are you sure you want to delete task "{name}"? This action cannot be undone.',
    taskDeleteFailed: "Delete failed, please try again",
    // Story deletion related
    confirmDeleteStory: "Do you want to delete the requirement {name} and all its subtasks? This action cannot be undone",
    storyDeleteYes: "Yes, Continue",
    storyDeleteNo: "No, Delete Requirement Only",
    storyDeleteAllSuccess: "Deleted requirement [{name}] and all its subtasks",
    storyDeleteOnlySuccess: "Deleted requirement [{name}], {count} subtasks have been promoted",
    storyNotFound: "Requirement not found, ID: {id}",
    // Milestone deletion success
    milestoneDeleteSuccess: "Milestone deleted successfully",
    // Other deletion success messages
    taskDeletedSuccess: "Task deleted",
    // Selector placeholders
    selectAssignee: "Select assignee",
    // Common messages
    customCsvExportCalled: "Custom CSV export called",
    languageSwitchedTo: "Language switched to: {language}",
    themeSwitchedTo: "Theme switched to: {theme}",
    lightModeText: "Light Mode",
    darkModeText: "Dark Mode",
    taskNotFound: "Task not found for update, ID: {id}",
    newParentTaskNotFound: "New parent task not found, ID: {parentId}, will be added as top-level task",
    inPlaceUpdateFailed: "In-place update failed, task not found, ID: {id}",
    taskToDeleteNotFound: "Task to delete not found, ID: {id}",
    milestoneIconUpdateNotFound: "Milestone not found for icon update, ID: {id}",
    overtime: "Over",
    overdue: "Overdue",
    days: " days",
    // 计时确认弹窗
    timerConfirmPrefix: "About to start timing for",
    timerConfirmSuffix: ". If there are special notes, please complete the description below.",
    timerConfirmPlaceholder: "Please enter timer description"
  }
};
function rf(t, e) {
  Nc[t] && Object.assign(Nc[t], e);
}
const Gg = "gantt-locale", jg = () => {
  if (typeof window < "u") {
    const t = localStorage.getItem(Gg);
    if (t && (t === "zh-CN" || t === "en-US"))
      return t;
  }
  return "zh-CN";
}, nc = IA(jg());
function In() {
  const t = pe(() => Nc[nc.value]), e = (o) => {
    const c = t.value[o];
    return typeof c == "string" ? c : o;
  }, A = (o, c) => {
    let d = e(o);
    return Object.keys(c).forEach((h) => {
      d = d.replace(new RegExp(`{${h}}`, "g"), String(c[h]));
    }), d;
  }, r = (o) => {
    nc.value = o, window.dispatchEvent(
      new CustomEvent("locale-changed", {
        detail: { locale: o }
      })
    );
  }, n = pe(() => nc.value);
  return {
    t,
    getTranslation: e,
    formatTranslation: A,
    locale: n,
    setLocale: r,
    formatYearMonth: (o, c) => t.value.yearMonthFormat(o, c),
    formatMonth: (o) => t.value.monthFormat(o)
  };
}
function Ed(t) {
  return t ? Array.isArray(t) && typeof t[0] == "number" ? t : Array.isArray(t) ? t.filter((e) => e && e.toString().trim()).map((e) => Number(e.toString().trim())).filter((e) => !isNaN(e)) : t.split(",").map((e) => e.trim()).filter((e) => e).map((e) => Number(e)).filter((e) => !isNaN(e)) : [];
}
function _c(t) {
  const e = Ed(t);
  return e.length > 0 ? e.join(", ") : "-";
}
const qg = { class: "confirm-timer-dialog-overlay" }, Wg = { class: "confirm-timer-dialog" }, Xg = { class: "dialog-message" }, zg = { class: "task-name-highlight" }, Yg = ["placeholder"], Jg = { class: "dialog-actions" }, $g = /* @__PURE__ */ vr({
  __name: "ConfirmTimerDialog",
  props: {
    visible: Boolean,
    title: { type: String, default: "确认开始计时" },
    message: { type: String, default: "" },
    defaultDesc: { type: String, default: "" },
    placeholder: { type: String, default: "请输入计时说明" }
  },
  emits: ["confirm", "cancel"],
  setup(t, { emit: e }) {
    const A = t, r = e, { getTranslation: n } = In(), s = IA(A.defaultDesc);
    Je(
      () => A.visible,
      (c) => {
        c && (s.value = A.defaultDesc);
      }
    );
    const a = () => r("confirm", s.value), o = pe(() => {
      if (A.message) {
        const c = A.message.match(/任务([\S\s]+?)计时|Task ([\S\s]+?) timing/);
        if (c && (c[1] || c[2])) return c[1] || c[2];
      }
      return A.defaultDesc;
    });
    return (c, d) => (wA(), FA("div", qg, [
      N("div", Wg, [
        N("div", Xg, [
          N("span", null, kA(de(n)("timerConfirmPrefix")), 1),
          N("span", zg, kA(o.value), 1),
          N("span", null, kA(de(n)("timerConfirmSuffix")), 1)
        ]),
        Er(N("textarea", {
          "onUpdate:modelValue": d[0] || (d[0] = (h) => s.value = h),
          class: "dialog-textarea",
          placeholder: de(n)("timerConfirmPlaceholder"),
          rows: "3"
        }, null, 8, Yg), [
          [Ln, s.value]
        ]),
        N("div", Jg, [
          N("button", {
            class: "btn btn-default",
            onClick: d[1] || (d[1] = (h) => c.$emit("cancel"))
          }, kA(de(n)("cancel")), 1),
          N("button", {
            class: "btn btn-confirm",
            onClick: a
          }, kA(de(n)("startTimer")), 1)
        ])
      ])
    ]));
  }
}), mr = (t, e) => {
  const A = t.__vccOpts || t;
  for (const [r, n] of e)
    A[r] = n;
  return A;
}, xd = /* @__PURE__ */ mr($g, [["__scopeId", "data-v-a9b5daff"]]), Zg = { class: "gantt-confirm-header" }, Ap = { class: "gantt-confirm-title" }, ep = { class: "gantt-confirm-content" }, tp = { class: "gantt-confirm-footer" }, rp = { class: "gantt-confirm-footer-right" }, np = /* @__PURE__ */ vr({
  __name: "GanttConfirmDialog",
  props: {
    visible: Boolean,
    title: { type: String, default: "确认" },
    message: { type: String, default: "" },
    confirmText: { type: String, default: "确认" },
    cancelText: { type: String, default: "取消" },
    yesText: { type: String, default: "是" },
    noText: { type: String, default: "否" },
    type: { type: String, default: "confirm-cancel" }
    // 'confirm-cancel' | 'yes-no-cancel'
  },
  emits: ["confirm", "cancel", "yes", "no"],
  setup(t, { emit: e }) {
    const A = t, r = e, n = () => r("confirm"), s = () => r("cancel"), a = () => r("yes"), o = () => r("no");
    return (c, d) => t.visible ? (wA(), FA("div", {
      key: 0,
      class: "gantt-confirm-overlay",
      onClick: s
    }, [
      N("div", {
        class: "gantt-confirm-dialog",
        onClick: d[0] || (d[0] = Br(() => {
        }, ["stop"]))
      }, [
        N("div", Zg, [
          N("h4", Ap, kA(A.title), 1)
        ]),
        N("div", ep, [
          N("p", null, kA(A.message), 1)
        ]),
        N("div", tp, [
          A.type === "yes-no-cancel" ? (wA(), FA(Ve, { key: 0 }, [
            N("button", {
              type: "button",
              class: "btn btn-default",
              onClick: s
            }, kA(A.cancelText), 1),
            N("div", rp, [
              N("button", {
                type: "button",
                class: "btn btn-warning",
                onClick: o
              }, kA(A.noText), 1),
              N("button", {
                type: "button",
                class: "btn btn-danger",
                onClick: a
              }, kA(A.yesText), 1)
            ])
          ], 64)) : (wA(), FA(Ve, { key: 1 }, [
            N("button", {
              type: "button",
              class: "btn btn-default",
              onClick: s
            }, kA(A.cancelText), 1),
            N("button", {
              type: "button",
              class: "btn btn-danger",
              onClick: n
            }, kA(A.confirmText), 1)
          ], 64))
        ])
      ])
    ])) : Be("", !0);
  }
}), vu = /* @__PURE__ */ mr(np, [["__scopeId", "data-v-200a3102"]]), sp = { class: "icon-wrapper" }, ip = /* @__PURE__ */ vr({
  __name: "TaskContextMenu",
  props: {
    visible: { type: Boolean },
    position: {},
    task: {}
  },
  emits: [
    "start-timer",
    "stop-timer",
    "add-predecessor",
    "add-successor",
    "delete",
    // 新增delete事件
    "close"
  ],
  setup(t, { emit: e }) {
    const A = t, r = e, { t: n } = In(), s = IA(null), a = IA({
      x: 0,
      y: 0
    }), o = IA({
      display: "none",
      // 初始不显示
      left: "50%",
      top: "-8px",
      transform: "rotate(0deg)"
    }), c = IA(!1), d = IA(""), h = IA(!1), g = pe(() => {
      var Q;
      return ((Q = A.task) == null ? void 0 : Q.type) === "story" ? "yes-no-cancel" : "confirm-cancel";
    }), w = pe(() => {
      var Q, k, U;
      return ((Q = A.task) == null ? void 0 : Q.type) === "story" ? n.value.confirmDeleteStory.replace("{name}", ((k = A.task) == null ? void 0 : k.name) || "") : n.value.confirmDeleteTask.replace("{name}", ((U = A.task) == null ? void 0 : U.name) || "");
    });
    function p() {
      var Q;
      d.value = ((Q = A.task) == null ? void 0 : Q.name) || "", c.value = !0;
    }
    function m() {
      c.value = !1;
    }
    function F(Q) {
      if (c.value = !1, A.task && typeof A.task == "object") {
        r("close");
        const k = Date.now();
        Object.assign(A.task, {
          timerStartDesc: Q || "",
          isTimerRunning: !0,
          timerStartTime: k,
          timerElapsedTime: 0
          // 每次从0秒开始
        }), r("start-timer", A.task);
      }
    }
    function D() {
      h.value = !0;
    }
    const v = () => {
      h.value = !1, A.task && (r("delete", A.task), r("close"));
    }, E = () => {
      h.value = !1;
    }, P = () => {
      h.value = !1, A.task && (r("delete", A.task, !0), Y());
    }, V = () => {
      h.value = !1, A.task && (r("delete", A.task, !1), Y());
    }, J = pe(() => {
      var Q;
      return ((Q = A.task) == null ? void 0 : Q.type) !== "story";
    });
    Je(
      [() => A.visible, () => A.position],
      ([Q, k]) => {
        Q && k && pt(() => {
          if (s.value) {
            const U = window.innerWidth, R = window.innerHeight, X = s.value.offsetWidth, AA = s.value.offsetHeight;
            let z = k.x - X / 2, aA = k.y + 10, rA = "50%", QA = "-8px", b = "rotate(0deg)";
            if (z + X > U) {
              const T = z + X - U + 5;
              z -= T, rA = `calc(50% + ${T}px)`;
            }
            if (z < 5) {
              const T = 5 - z;
              z = 5, rA = `calc(50% - ${T}px)`;
            }
            aA + AA > R && (aA = k.y - AA - 10, QA = "100%", b = "rotate(180deg)"), a.value = {
              x: z,
              y: aA
            }, o.value = {
              display: "block",
              left: rA,
              top: QA,
              transform: b
            };
          }
        });
      },
      { immediate: !0, deep: !0 }
    );
    const Y = () => {
      r("close");
    }, W = () => {
      var Q;
      (Q = A.task) != null && Q.isTimerRunning ? (r("close"), Object.assign(A.task, {
        isTimerRunning: !1,
        timerEndTime: Date.now(),
        timerElapsedTime: (A.task.timerElapsedTime || 0) + (Date.now() - (A.task.timerStartTime || Date.now()))
      }), r("stop-timer", A.task)) : p();
    }, O = () => {
      A.task && (r("close"), pt(() => {
        r("add-predecessor", A.task);
      }));
    }, q = () => {
      A.task && (r("close"), pt(() => {
        r("add-successor", A.task);
      }));
    }, lA = (Q) => {
      s.value && !s.value.contains(Q.target) && Y();
    }, I = (Q) => {
      Q.key === "Escape" && Y();
    };
    return Sr(() => {
      document.addEventListener("mousedown", lA), document.addEventListener("keydown", I);
    }), wr(() => {
      document.removeEventListener("mousedown", lA), document.removeEventListener("keydown", I);
    }), (Q, k) => {
      var U, R, X, AA;
      return wA(), Dr(il, { to: "body" }, [
        Q.visible ? (wA(), FA("div", {
          key: 0,
          ref_key: "menuRef",
          ref: s,
          class: "task-context-menu",
          style: At({
            left: `${a.value.x}px`,
            top: `${a.value.y}px`,
            zIndex: 3e3,
            position: "fixed"
          })
        }, [
          N("div", {
            class: "menu-arrow",
            style: At({
              display: o.value.display,
              left: o.value.left,
              top: o.value.top,
              transform: o.value.transform
            })
          }, null, 4),
          J.value ? (wA(), FA("div", {
            key: 0,
            class: "menu-item",
            onClick: W
          }, [
            N("div", sp, [
              N("i", {
                class: Me(["menu-icon", (U = A.task) != null && U.isTimerRunning ? "stop-icon" : "timer-icon"])
              }, null, 2)
            ]),
            Tt(" " + kA((R = A.task) != null && R.isTimerRunning ? de(n).stopTimer : de(n).startTimer), 1)
          ])) : Be("", !0),
          N("div", {
            class: "menu-item",
            onClick: O
          }, [
            k[0] || (k[0] = N("div", { class: "icon-wrapper" }, [
              N("i", { class: "menu-icon predecessor-icon" })
            ], -1)),
            Tt(" " + kA(de(n).addPredecessor), 1)
          ]),
          N("div", {
            class: "menu-item",
            onClick: q
          }, [
            k[1] || (k[1] = N("div", { class: "icon-wrapper" }, [
              N("i", { class: "menu-icon successor-icon" })
            ], -1)),
            Tt(" " + kA(de(n).addSuccessor), 1)
          ]),
          k[3] || (k[3] = N("div", { class: "menu-divider" }, null, -1)),
          N("div", {
            class: "menu-item menu-item-danger",
            onClick: D
          }, [
            k[2] || (k[2] = N("div", { class: "icon-wrapper" }, [
              N("i", { class: "menu-icon delete-icon" })
            ], -1)),
            Tt(" " + kA(de(n).delete), 1)
          ]),
          xr(vu, {
            visible: h.value,
            title: de(n).delete,
            type: g.value,
            message: w.value,
            "confirm-text": de(n).confirm,
            "cancel-text": de(n).cancel,
            "yes-text": de(n).storyDeleteYes,
            "no-text": de(n).storyDeleteNo,
            onConfirm: v,
            onYes: P,
            onNo: V,
            onCancel: E
          }, null, 8, ["visible", "title", "type", "message", "confirm-text", "cancel-text", "yes-text", "no-text"]),
          c.value ? (wA(), Dr(xd, {
            key: 1,
            visible: c.value,
            title: "确认开始计时",
            message: `即将为任务${(X = A.task) == null ? void 0 : X.name}计时,若有特殊说明请完善下面的描述`,
            "default-desc": ((AA = A.task) == null ? void 0 : AA.name) || "",
            onConfirm: F,
            onCancel: m
          }, null, 8, ["visible", "message", "default-desc"])) : Be("", !0)
        ], 4)) : Be("", !0)
      ]);
    };
  }
}), Id = /* @__PURE__ */ mr(ip, [["__scopeId", "data-v-b060e58d"]]), ap = {
  width: "12",
  height: "12",
  viewBox: "0 0 24 24",
  fill: "none",
  stroke: "currentColor",
  "stroke-width": "2"
}, op = {
  key: 0,
  points: "9,18 15,12 9,6"
}, lp = {
  key: 1,
  points: "18,15 12,9 6,15"
}, cp = {
  key: 1,
  class: "milestone-spacer"
}, up = { class: "task-icon" }, fp = {
  key: 0,
  width: "16",
  height: "16",
  viewBox: "0 0 24 24",
  fill: "none",
  stroke: "currentColor",
  "stroke-width": "2",
  class: "milestone-group-icon"
}, dp = {
  key: 1,
  width: "16",
  height: "16",
  viewBox: "0 0 24 24",
  fill: "none",
  stroke: "currentColor",
  "stroke-width": "2"
}, hp = {
  key: 2,
  width: "16",
  height: "16",
  viewBox: "0 0 24 24",
  fill: "none",
  stroke: "currentColor",
  "stroke-width": "2"
}, gp = ["title"], pp = {
  key: 0,
  class: "timer-dot"
}, Bp = {
  key: 1,
  class: "status-badge overtime"
}, wp = {
  key: 2,
  class: "status-badge overdue"
}, vp = { class: "col col-pre" }, mp = { class: "col col-assignee" }, yp = { class: "assignee-info" }, Cp = { class: "avatar" }, bp = { class: "assignee-name" }, Fp = { class: "col col-date" }, Qp = { class: "col col-date" }, Up = { class: "col col-hours" }, Lp = { class: "col col-hours" }, Ep = { class: "col col-progress" }, xp = 10, Ip = /* @__PURE__ */ vr({
  __name: "TaskRow",
  props: {
    task: {},
    level: {},
    onDoubleClick: { type: Function },
    isHovered: { type: Boolean },
    hoveredTaskId: {},
    onHover: { type: Function }
  },
  emits: [
    "toggle",
    "dblclick",
    "contextmenu",
    "start-timer",
    "stop-timer",
    "add-predecessor",
    "add-successor",
    "delete"
  ],
  setup(t, { emit: e }) {
    const A = t, r = e, { t: n } = In(), s = pe(() => {
      var U;
      return ((U = n.value) == null ? void 0 : U.overtime) ?? "";
    }), a = pe(() => {
      var U;
      return ((U = n.value) == null ? void 0 : U.overdue) ?? "";
    }), o = pe(() => {
      var U;
      return ((U = n.value) == null ? void 0 : U.days) ?? "";
    }), c = `${xp + A.level * 20}px`;
    function d() {
      r("toggle", A.task);
    }
    function h() {
      (A.task.type === "story" || A.task.children && A.task.children.length > 0) && A.task.type !== "milestone-group" && r("toggle", A.task);
    }
    const g = (U) => {
      U.stopPropagation(), A.onDoubleClick && typeof A.onDoubleClick == "function" ? A.onDoubleClick(A.task) : r("dblclick", A.task);
    }, w = () => {
      v.value || A.onHover && A.onHover(A.task.id);
    }, p = () => {
      v.value || A.onHover && A.onHover(null);
    };
    function m() {
      const U = A.task.progress || 0, R = /* @__PURE__ */ new Date(), X = A.task.endDate ? new Date(A.task.endDate) : null;
      return X && R > X && U < 100 ? "progress-danger" : U >= 100 ? "progress-success" : U > 0 ? "progress-warning" : "";
    }
    function F() {
      return A.task.actualHours && A.task.estimatedHours && A.task.actualHours > A.task.estimatedHours;
    }
    function D() {
      const U = /* @__PURE__ */ new Date(), R = A.task.endDate ? new Date(A.task.endDate) : null, X = A.task.progress || 0;
      if (R && U > R && X < 100) {
        const AA = new Date(U.getFullYear(), U.getMonth(), U.getDate()), z = new Date(R.getFullYear(), R.getMonth(), R.getDate());
        return Math.floor((AA.getTime() - z.getTime()) / (1e3 * 60 * 60 * 24));
      }
      return 0;
    }
    const v = IA(!1), E = () => {
      v.value = !0;
    }, P = () => {
      v.value = !1;
    }, V = IA(0), J = IA(null), Y = pe(() => {
      const U = Math.floor(V.value / 1e3), R = Math.floor(U / 3600), X = Math.floor(U % 3600 / 60), AA = U % 60;
      return `${String(R).padStart(2, "0")}:${String(X).padStart(2, "0")}:${String(AA).padStart(2, "0")}`;
    }), W = () => {
      if (A.task.isTimerRunning && A.task.timerStartTime) {
        const U = A.task.timerElapsedTime || 0;
        V.value = Date.now() - A.task.timerStartTime + U;
      } else A.task.timerElapsedTime ? V.value = A.task.timerElapsedTime : V.value = 0;
    };
    Je(
      () => [A.task.isTimerRunning, A.task.timerStartTime, A.task.timerElapsedTime],
      () => {
        J.value && (clearInterval(J.value), J.value = null), A.task.isTimerRunning ? (W(), J.value = window.setInterval(W, 1e3)) : W();
      },
      { immediate: !0 }
    );
    const O = IA(!1), q = IA({ x: 0, y: 0 }), lA = pe(() => A.task);
    function I(U) {
      if (window.dispatchEvent(new CustomEvent("close-all-taskbar-menus")), A.task.type !== "task" && A.task.type !== "story") {
        U.preventDefault(), O.value = !1;
        return;
      }
      U.preventDefault(), O.value = !0, q.value = { x: U.clientX, y: U.clientY };
    }
    function Q() {
      O.value = !1;
    }
    const k = (U, R) => {
      r("delete", U, R), Q();
    };
    return Sr(() => {
      window.addEventListener("splitter-drag-start", E), window.addEventListener("splitter-drag-end", P), window.addEventListener("close-all-taskbar-menus", Q);
    }), wr(() => {
      window.removeEventListener("splitter-drag-start", E), window.removeEventListener("splitter-drag-end", P), window.removeEventListener("close-all-taskbar-menus", Q), J.value && clearInterval(J.value);
    }), (U, R) => {
      const X = Og("TaskRow", !0);
      return wA(), FA("div", null, [
        N("div", {
          class: Me(["task-row", {
            "task-row-hovered": U.isHovered,
            "parent-task": A.task.type === "story" || A.task.children && A.task.children.length > 0 || A.task.type === "milestone-group",
            "milestone-group-row": A.task.type === "milestone-group",
            "task-type-story": A.task.type === "story",
            "task-type-task": A.task.type === "task",
            "task-type-milestone": A.task.type === "milestone"
          }]),
          onClick: h,
          onDblclick: g,
          onMouseenter: w,
          onMouseleave: p,
          onContextmenu: I
        }, [
          N("div", {
            class: "col col-name",
            style: At({ paddingLeft: c })
          }, [
            (A.task.type === "story" || A.task.children && A.task.children.length > 0) && A.task.type !== "milestone-group" ? (wA(), FA("span", {
              key: 0,
              class: "collapse-btn",
              onClick: Br(d, ["stop"])
            }, [
              (wA(), FA("svg", ap, [
                A.task.collapsed ? (wA(), FA("polyline", op)) : (wA(), FA("polyline", lp))
              ]))
            ])) : Be("", !0),
            A.task.type === "milestone-group" ? (wA(), FA("span", cp)) : Be("", !0),
            N("span", up, [
              A.task.type === "milestone-group" ? (wA(), FA("svg", fp, R[10] || (R[10] = [
                N("polygon", { points: "12,2 22,12 12,22 2,12" }, null, -1)
              ]))) : A.task.type === "story" || A.task.children && A.task.children.length > 0 ? (wA(), FA("svg", dp, R[11] || (R[11] = [
                N("path", { d: "M3 7v10a2 2 0 002 2h14a2 2 0 002-2V9a2 2 0 00-2-2h-5l-2-2H5a2 2 0 00-2 2z" }, null, -1)
              ]))) : (wA(), FA("svg", hp, R[12] || (R[12] = [
                Yn('<path d="M14 2H6a2 2 0 00-2 2v16a2 2 0 002 2h12a2 2 0 002-2V8z" data-v-6f0df841></path><polyline points="14,2 14,8 20,8" data-v-6f0df841></polyline><line x1="16" y1="13" x2="8" y2="13" data-v-6f0df841></line><line x1="16" y1="17" x2="8" y2="17" data-v-6f0df841></line><polyline points="10,9 9,9 8,9" data-v-6f0df841></polyline>', 5)
              ])))
            ]),
            N("span", {
              class: Me(["task-name-text", {
                "parent-task": A.task.type === "story" || A.task.children && A.task.children.length > 0 || A.task.type === "milestone-group"
              }]),
              title: A.task.name
            }, [
              Tt(kA(A.task.name) + " ", 1),
              A.task.isTimerRunning || A.task.timerElapsedTime ? (wA(), FA("span", {
                key: 0,
                class: Me(["timer-badge", { "timer-active": A.task.isTimerRunning }])
              }, [
                A.task.isTimerRunning ? (wA(), FA("span", pp)) : Be("", !0),
                Tt(" " + kA(Y.value), 1)
              ], 2)) : Be("", !0),
              F() ? (wA(), FA("span", Bp, kA(s.value), 1)) : Be("", !0),
              D() > 0 ? (wA(), FA("span", wp, kA(a.value) + kA(D() > 0 ? D() + o.value : ""), 1)) : Be("", !0)
            ], 10, gp)
          ], 4),
          A.task.type === "milestone-group" ? (wA(), FA(Ve, { key: 0 }, [
            R[13] || (R[13] = Yn('<div class="col col-pre milestone-empty-col" data-v-6f0df841></div><div class="col col-assignee milestone-empty-col" data-v-6f0df841></div><div class="col col-date milestone-empty-col" data-v-6f0df841></div><div class="col col-date milestone-empty-col" data-v-6f0df841></div><div class="col col-hours milestone-empty-col" data-v-6f0df841></div><div class="col col-hours milestone-empty-col" data-v-6f0df841></div><div class="col col-progress milestone-empty-col" data-v-6f0df841></div>', 7))
          ], 64)) : (wA(), FA(Ve, { key: 1 }, [
            N("div", vp, kA(de(_c)(A.task.predecessor)), 1),
            N("div", mp, [
              N("div", yp, [
                N("div", Cp, kA(A.task.assignee ? A.task.assignee.charAt(0) : "-"), 1),
                N("span", bp, kA(A.task.assignee || "-"), 1)
              ])
            ]),
            N("div", Fp, kA(A.task.startDate || "-"), 1),
            N("div", Qp, kA(A.task.endDate || "-"), 1),
            N("div", Up, kA(A.task.estimatedHours || "-"), 1),
            N("div", Lp, kA(A.task.actualHours || "-"), 1),
            N("div", Ep, [
              N("span", {
                class: Me(["progress-value", m()])
              }, kA(A.task.progress != null ? A.task.progress + "%" : "-"), 3)
            ])
          ], 64))
        ], 34),
        A.task.children && !A.task.collapsed && A.task.type !== "milestone-group" ? (wA(!0), FA(Ve, { key: 0 }, ht(A.task.children, (AA) => (wA(), Dr(X, {
          key: AA.id,
          task: AA,
          level: A.level + 1,
          "is-hovered": A.hoveredTaskId === AA.id,
          "hovered-task-id": A.hoveredTaskId,
          "on-double-click": A.onDoubleClick,
          "on-hover": A.onHover,
          onToggle: R[0] || (R[0] = (z) => r("toggle", z)),
          onDblclick: R[1] || (R[1] = (z) => r("dblclick", z)),
          onStartTimer: R[2] || (R[2] = (z) => r("start-timer", z)),
          onStopTimer: R[3] || (R[3] = (z) => r("stop-timer", z)),
          onAddPredecessor: R[4] || (R[4] = (z) => r("add-predecessor", z)),
          onAddSuccessor: R[5] || (R[5] = (z) => r("add-successor", z)),
          onDelete: k
        }, null, 8, ["task", "level", "is-hovered", "hovered-task-id", "on-double-click", "on-hover"]))), 128)) : Be("", !0),
        xr(Id, {
          visible: O.value,
          task: lA.value,
          position: q.value,
          onClose: Q,
          onStartTimer: R[6] || (R[6] = (AA) => U.$emit("start-timer", A.task)),
          onStopTimer: R[7] || (R[7] = (AA) => U.$emit("stop-timer", A.task)),
          onAddPredecessor: R[8] || (R[8] = (AA) => U.$emit("add-predecessor", A.task)),
          onAddSuccessor: R[9] || (R[9] = (AA) => U.$emit("add-successor", A.task)),
          onDelete: k
        }, null, 8, ["visible", "task", "position"])
      ]);
    };
  }
}), Sp = /* @__PURE__ */ mr(Ip, [["__scopeId", "data-v-6f0df841"]]), Dp = { class: "task-list" }, kp = { class: "task-list-header" }, Hp = { class: "col col-name" }, Tp = { class: "col col-pre" }, Np = { class: "col col-assignee" }, _p = { class: "col col-date" }, Mp = { class: "col col-date" }, Pp = { class: "col col-hours" }, Op = { class: "col col-hours" }, Rp = { class: "col col-progress" }, Kp = /* @__PURE__ */ vr({
  __name: "TaskList",
  props: {
    tasks: {},
    onTaskDoubleClick: { type: Function },
    editComponent: {},
    useDefaultDrawer: { type: Boolean }
  },
  emits: ["task-collapse-change", "start-timer", "stop-timer", "add-predecessor", "add-successor", "delete"],
  setup(t, { emit: e }) {
    const A = t, r = e, { t: n } = In(), s = IA([]), a = IA(null), o = IA(!1), c = () => {
      o.value = !0;
    }, d = () => {
      o.value = !1;
    }, h = (U) => {
      o.value || (a.value = U, window.dispatchEvent(
        new CustomEvent("task-list-hover", {
          detail: U
        })
      ));
    }, g = (U) => {
      a.value = U.detail;
    }, w = (U) => {
      U.type === "milestone" || U.type === "milestone-group" || (A.onTaskDoubleClick && typeof A.onTaskDoubleClick == "function" ? A.onTaskDoubleClick(U) : A.useDefaultDrawer && window.dispatchEvent(
        new CustomEvent("task-row-double-click", {
          detail: U
        })
      ));
    }, p = (U) => {
      if (!U.children || U.children.length === 0)
        return {
          progress: U.progress || 0,
          startDate: U.startDate || "",
          endDate: U.endDate || ""
        };
      const R = [], X = (_) => {
        _.forEach((j) => {
          R.push(j), j.children && j.children.length > 0 && X(j.children);
        });
      };
      X(U.children);
      const AA = R.reduce((_, j) => _ + (j.progress || 0), 0), z = R.length > 0 ? Math.round(AA / R.length) : 0, aA = R.filter((_) => _.startDate && _.endDate);
      if (aA.length === 0)
        return {
          progress: z,
          startDate: U.startDate || "",
          endDate: U.endDate || ""
        };
      const rA = aA.map((_) => new Date(_.startDate)), QA = aA.map((_) => new Date(_.endDate)), b = new Date(Math.min(...rA.map((_) => _.getTime()))), T = new Date(Math.max(...QA.map((_) => _.getTime())));
      return {
        progress: z,
        startDate: b.toISOString().split("T")[0],
        endDate: T.toISOString().split("T")[0]
      };
    }, m = () => {
      const U = (R) => R.map((X) => {
        if (X.children && X.children.length > 0) {
          const AA = U(X.children), z = p({
            ...X,
            children: AA
          });
          return {
            ...X,
            progress: z.progress,
            startDate: z.startDate,
            endDate: z.endDate,
            children: AA
          };
        }
        return X;
      });
      s.value = U(s.value);
    }, F = (U) => {
      const R = [], X = (AA) => {
        AA.forEach((z) => {
          R.push(z), z.children && z.children.length > 0 && X(z.children);
        });
      };
      return X(U), R;
    };
    Je(
      () => A.tasks,
      (U) => {
        s.value = U || [], m();
      },
      { immediate: !0, deep: !0 }
    );
    function D(U) {
      U.collapsed = !U.collapsed, r("task-collapse-change", U);
    }
    const v = (U) => {
      const R = (X) => X.map((AA) => AA.id === U.id ? {
        ...AA,
        ...U,
        // 完整更新所有字段
        children: AA.children
        // 保留子任务结构
      } : AA.children ? {
        ...AA,
        children: R(AA.children)
      } : AA);
      s.value = R(s.value), m();
    }, E = (U) => {
      const R = U.detail;
      v(R);
    }, P = (U) => {
      const R = U.detail;
      s.value.push(R), m();
    }, V = () => {
      const U = F(s.value);
      window.dispatchEvent(
        new CustomEvent("task-list-updated", {
          detail: U
        })
      );
    }, J = (U) => {
      const { milestoneId: R, icon: X } = U.detail, AA = (z) => {
        for (const aA of z) {
          if (aA.type === "milestone-group" && aA.children) {
            const rA = aA.children.find((QA) => QA.id === R);
            if (rA)
              return rA.icon = X, !0;
          }
          if (aA.children && AA(aA.children))
            return !0;
        }
        return !1;
      };
      AA(s.value);
    }, Y = (U) => {
      const R = U.target;
      if (!R) return;
      const X = R.scrollTop;
      window.dispatchEvent(
        new CustomEvent("task-list-vertical-scroll", {
          detail: { scrollTop: X }
        })
      );
    }, W = (U) => {
      const { scrollTop: R } = U.detail, X = document.querySelector(".task-list-body");
      X && X.scrollTop !== R && (X.scrollTop = R);
    }, O = (U) => {
      try {
        window.dispatchEvent(
          new CustomEvent("context-menu", {
            detail: U
          })
        );
      } catch (R) {
        console.error("TaskList - Failed to dispatch context-menu event", R);
      }
    }, q = (U) => {
      r("start-timer", U);
    }, lA = (U) => {
      r("stop-timer", U);
    }, I = (U) => {
      r("add-predecessor", U);
    }, Q = (U) => {
      r("add-successor", U);
    }, k = (U, R) => {
      r("delete", U, R);
    };
    return Sr(async () => {
      window.addEventListener("task-updated", E), window.addEventListener("task-added", P), window.addEventListener("request-task-list", V), window.addEventListener("timeline-task-hover", g), window.addEventListener("timeline-vertical-scroll", W), window.addEventListener("milestone-icon-changed", J), window.addEventListener("splitter-drag-start", c), window.addEventListener("splitter-drag-end", d), m();
    }), wr(() => {
      window.removeEventListener("task-updated", E), window.removeEventListener("task-added", P), window.removeEventListener("request-task-list", V), window.removeEventListener("timeline-task-hover", g), window.removeEventListener(
        "timeline-vertical-scroll",
        W
      ), window.removeEventListener("milestone-icon-changed", J), window.removeEventListener("splitter-drag-start", c), window.removeEventListener("splitter-drag-end", d);
    }), (U, R) => (wA(), FA("div", Dp, [
      N("div", kp, [
        N("div", Hp, kA(de(n).taskName), 1),
        N("div", Tp, kA(de(n).predecessor), 1),
        N("div", Np, kA(de(n).assignee), 1),
        N("div", _p, kA(de(n).startDate), 1),
        N("div", Mp, kA(de(n).endDate), 1),
        N("div", Pp, kA(de(n).estimatedHours), 1),
        N("div", Op, kA(de(n).actualHours), 1),
        N("div", Rp, kA(de(n).progress), 1)
      ]),
      N("div", {
        class: "task-list-body",
        onScroll: Y
      }, [
        (wA(!0), FA(Ve, null, ht(s.value, (X) => (wA(), Dr(Sp, {
          key: X.id,
          task: X,
          level: 0,
          "is-hovered": a.value === X.id,
          "hovered-task-id": a.value,
          "on-double-click": A.onTaskDoubleClick,
          "on-hover": h,
          onToggle: D,
          onDblclick: w,
          onContextmenu: O,
          onStartTimer: q,
          onStopTimer: lA,
          onAddPredecessor: I,
          onAddSuccessor: Q,
          onDelete: k
        }, null, 8, ["task", "is-hovered", "hovered-task-id", "on-double-click"]))), 128))
      ], 32)
    ]));
  }
}), Vp = /* @__PURE__ */ mr(Kp, [["__scopeId", "data-v-204c9a9c"]]), Xe = {
  DAY: "day",
  // 日视图 - 每列显示一天
  WEEK: "week",
  // 周视图 - 每列显示一周
  MONTH: "month"
  // 月视图 - 每列显示一个月
};
Xe.DAY, Xe.WEEK, Xe.MONTH;
const Gp = {
  key: 0,
  class: "parent-label"
}, jp = { class: "tooltip-title" }, qp = { class: "tooltip-content" }, Wp = { class: "tooltip-row" }, Xp = { class: "tooltip-value" }, zp = { class: "tooltip-row" }, Yp = { class: "tooltip-value" }, Jp = { class: "tooltip-row" }, $p = { class: "tooltip-value" }, Zp = { class: "tooltip-row" }, A0 = { class: "tooltip-value" }, e0 = { class: "tooltip-row" }, t0 = { class: "tooltip-value" }, r0 = /* @__PURE__ */ vr({
  __name: "TaskBar",
  props: {
    task: {},
    rowHeight: {},
    dayWidth: {},
    startDate: {},
    isParent: { type: Boolean },
    onDoubleClick: { type: Function },
    scrollLeft: {},
    containerWidth: {},
    hideBubbles: { type: Boolean },
    timelineData: {},
    currentTimeScale: {}
  },
  emits: [
    "update:task",
    "bar-mounted",
    "dblclick",
    "drag-end",
    "resize-end",
    "scroll-to-position",
    "start-timer",
    "stop-timer",
    "add-predecessor",
    "add-successor",
    "delete"
  ],
  setup(t, { emit: e }) {
    const A = t, r = e, n = (sA) => {
      if (!sA) return null;
      if (sA instanceof Date)
        return sA;
      if (typeof sA == "string" && /^\d{4}-\d{2}-\d{2}$/.test(sA)) {
        const [PA, te, he] = sA.split("-").map(Number);
        return new Date(PA, te - 1, he);
      }
      const bA = new Date(sA);
      return isNaN(bA.getTime()) ? null : bA;
    }, s = () => {
      const sA = /* @__PURE__ */ new Date();
      return new Date(sA.getFullYear(), sA.getMonth(), sA.getDate());
    }, a = (sA) => {
      const bA = sA.getFullYear(), PA = String(sA.getMonth() + 1).padStart(2, "0"), te = String(sA.getDate()).padStart(2, "0");
      return `${bA}-${PA}-${te}`;
    }, o = (sA, bA) => {
      const PA = new Date(sA);
      return PA.setDate(PA.getDate() + bA), PA;
    }, c = IA(!1), d = IA(!1), h = IA(!1), g = IA(0), w = IA(0), p = IA(0), m = IA(0), F = IA(0), D = IA(0), v = IA(0), E = IA(null), P = IA(null), V = pe(() => {
      var RA, Pe;
      const sA = ((RA = E.value) == null ? void 0 : RA.startDate) || A.task.startDate, bA = ((Pe = E.value) == null ? void 0 : Pe.endDate) || A.task.endDate, PA = n(sA), te = n(bA), he = n(A.startDate);
      if (!PA || !te || !he)
        return {
          left: "0px",
          width: "0px",
          height: `${A.rowHeight - 10}px`,
          top: "4px"
        };
      let re = 0, ce = 0;
      if (A.timelineData && A.currentTimeScale && (A.currentTimeScale === Xe.WEEK || A.currentTimeScale === Xe.MONTH)) {
        const Ce = CA(
          PA,
          A.timelineData,
          A.currentTimeScale
        ), tt = new Date(te);
        tt.setDate(tt.getDate() + 1);
        let Ue = CA(
          tt,
          A.timelineData,
          A.currentTimeScale
        );
        if (Ue === Ce) {
          const ke = A.currentTimeScale === Xe.WEEK ? 8.571428571428571 : 2;
          Ue = CA(te, A.timelineData, A.currentTimeScale) + ke;
        }
        re = Ce, ce = Math.max(Ue - Ce, 4);
      } else {
        const Ce = Math.floor(
          (PA.getTime() - he.getTime()) / 864e5
        ), Ue = (te.getTime() - PA.getTime()) / (1e3 * 60 * 60 * 24), ke = Math.floor(Ue) + 1;
        re = Ce * A.dayWidth, ce = ke * A.dayWidth;
      }
      return {
        left: `${re}px`,
        width: `${ce}px`,
        height: `${A.rowHeight - 10}px`,
        top: "4px"
      };
    }), J = pe(() => {
      if (A.isParent)
        return {
          type: "parent",
          color: "#409eff",
          // 与新建按钮一致的蓝色
          bgColor: "#409eff",
          borderColor: "#409eff"
        };
      const sA = s(), bA = n(A.task.endDate || ""), PA = A.task.progress || 0;
      return PA >= 100 ? {
        type: "completed",
        color: "#909399",
        // info color
        bgColor: "#f4f4f5",
        borderColor: "#d3d4d6"
      } : bA && bA < sA && PA < 100 ? {
        type: "delayed",
        color: "#f56c6c",
        // danger color
        bgColor: "#fef0f0",
        borderColor: "#fbc4c4"
      } : bA && bA >= sA && PA > 0 ? {
        type: "in-progress",
        color: "#e6a23c",
        // warning color
        bgColor: "#fdf6ec",
        borderColor: "#f5dab1"
      } : {
        type: "not-started",
        color: "#409eff",
        // primary color
        bgColor: "#ecf5ff",
        borderColor: "#b3d8ff"
      };
    }), Y = pe(() => (A.task.progress || 0) >= 100), W = pe(() => {
      const sA = A.task.progress || 0, bA = parseInt(V.value.width);
      return `${sA / 100 * bA}px`;
    }), O = pe(() => A.dayWidth <= 9), q = pe(() => parseFloat(V.value.width || "0") < 80), lA = pe(() => O.value && q.value), I = (sA, bA) => {
      if (Y.value || A.isParent || (sA.preventDefault(), sA.stopPropagation(), E.value = null, !document.querySelector(".timeline") || !P.value)) return;
      const te = P.value.getBoundingClientRect();
      v.value = sA.clientX - te.left, bA === "drag" ? (c.value = !0, g.value = sA.clientX, w.value = parseInt(V.value.left), p.value = parseInt(V.value.width)) : bA === "resize-left" ? (d.value = !0, m.value = sA.clientX, F.value = parseInt(V.value.width), D.value = parseInt(V.value.left)) : bA === "resize-right" && (h.value = !0, m.value = sA.clientX, F.value = parseInt(V.value.width), D.value = parseInt(V.value.left)), window.addEventListener("timeline-auto-scroll", Q), document.addEventListener("mousemove", U), document.addEventListener("mouseup", R);
    }, Q = (sA) => {
      const { scrollDelta: bA } = sA.detail;
      c.value ? g.value -= bA : (d.value || h.value) && (m.value -= bA);
    };
    function k() {
      if (P.value) {
        const sA = P.value.getBoundingClientRect();
        r("bar-mounted", {
          id: A.task.id,
          left: sA.left,
          top: sA.top,
          width: sA.width,
          height: sA.height
        });
      }
    }
    const U = (sA) => {
      if (window.dispatchEvent(
        new CustomEvent("drag-boundary-check", {
          detail: {
            mouseX: sA.clientX,
            isDragging: c.value || d.value || h.value
          }
        })
      ), c.value) {
        const bA = sA.clientX - g.value, PA = Math.max(0, w.value + bA), te = o(A.startDate, PA / A.dayWidth), he = p.value / A.dayWidth, re = o(te, he - 1);
        E.value = {
          startDate: a(te),
          endDate: a(re)
        };
      } else if (d.value) {
        const bA = sA.clientX - m.value, PA = Math.max(0, D.value + bA), te = o(A.startDate, PA / A.dayWidth);
        E.value = {
          startDate: a(te),
          endDate: A.task.endDate
          // 保持原来的结束日期
        };
      } else if (h.value) {
        const bA = sA.clientX - m.value, te = Math.max(A.dayWidth, F.value + bA) / A.dayWidth, he = o(
          A.startDate,
          D.value / A.dayWidth + te - 1
        );
        E.value = {
          startDate: A.task.startDate,
          // 保持原来的开始日期
          endDate: a(he)
        };
      }
    }, R = () => {
      if (window.dispatchEvent(
        new CustomEvent("drag-boundary-check", {
          detail: {
            mouseX: 0,
            isDragging: !1
          }
        })
      ), E.value) {
        const sA = {
          ...A.task,
          ...E.value
        };
        c.value ? r("drag-end", sA) : (d.value || h.value) && r("resize-end", sA), r("update:task", sA), E.value = null, pt(() => {
          k();
        });
      }
      window.removeEventListener("timeline-auto-scroll", Q), c.value = !1, d.value = !1, h.value = !1, document.removeEventListener("mousemove", U), document.removeEventListener("mouseup", R);
    };
    Sr(() => {
      pt(() => {
        k();
      });
      const sA = () => {
        pt(() => {
          k();
        });
      }, bA = () => {
        pt(() => {
          setTimeout(() => {
            k();
          }, 10);
        });
      };
      window.addEventListener("timeline-scale-updated", sA), window.addEventListener("timeline-force-recalculate", bA), window.addEventListener("close-all-taskbar-menus", OA), wr(() => {
        window.removeEventListener("timeline-scale-updated", sA), window.removeEventListener("timeline-force-recalculate", bA), window.removeEventListener("close-all-taskbar-menus", OA);
      });
    }), Je(
      () => [A.task.startDate, A.task.endDate],
      () => {
        pt(() => {
          k();
        });
      },
      { deep: !0 }
    );
    const X = (sA) => {
      sA.stopPropagation(), sA.preventDefault(), c.value = !1, d.value = !1, h.value = !1, E.value = null, document.removeEventListener("mousemove", U), document.removeEventListener("mouseup", R), A.onDoubleClick && typeof A.onDoubleClick == "function" ? A.onDoubleClick(A.task) : r("dblclick", A.task);
    }, AA = pe(() => {
      const sA = A.scrollLeft || 0, bA = A.containerWidth || 0;
      if (!sA && !bA)
        return {
          nameLeft: "",
          namePosition: "",
          nameTop: "",
          progressLeft: "",
          progressPosition: "",
          progressTop: ""
        };
      const PA = parseInt(V.value.left), te = parseInt(V.value.width), he = PA + te, re = PA + te / 2, ce = sA, RA = sA + bA;
      let Pe = "", Ce = "", tt = "", Ue = "", ke = "", mt = "";
      const Se = A.task.name || "", xt = Math.max(Se.length * 7, 40), gA = 35, _A = re - xt / 2, Ae = re + xt / 2, JA = re - gA / 2, LA = re + gA / 2, ae = _A < ce && he > ce && re < ce, He = Ae > RA && PA < RA && re > RA;
      ae ? (Pe = `${ce - PA + 8}px`, Ce = "absolute", tt = "6px") : He && (Pe = `${RA - PA - xt - 8}px`, Ce = "absolute", tt = "6px");
      const ve = JA < ce && he > ce && re < ce, $A = LA > RA && PA < RA && re > RA;
      return ve ? (Ue = `${ce - PA + 8}px`, ke = "absolute", mt = "24px") : $A && (Ue = `${RA - PA - gA - 8}px`, ke = "absolute", mt = "24px"), {
        nameLeft: Pe,
        namePosition: Ce,
        nameTop: tt,
        progressLeft: Ue,
        progressPosition: ke,
        progressTop: mt
      };
    }), z = pe(() => {
      const sA = A.scrollLeft || 0, bA = A.containerWidth || 0;
      if (!bA || bA <= 0)
        return {
          show: !1,
          left: "0px",
          side: "left",
          color: "#409eff",
          animationType: "none"
        };
      if (_.value || $.value || A.hideBubbles)
        return {
          show: !1,
          left: "0px",
          side: "left",
          color: J.value.color,
          animationType: "none"
        };
      const PA = parseInt(V.value.left), te = parseInt(V.value.width), he = PA + te, re = sA, ce = sA + bA, RA = he <= re, Pe = PA >= ce;
      return RA ? {
        show: !0,
        left: `${re - PA - 4}px`,
        // 圆心在边界上,向左偏移半径(4px)
        side: "left",
        color: J.value.color,
        animationType: "morphToSemiCircle"
      } : Pe ? {
        show: !0,
        left: `${ce - PA - 8}px`,
        // 右侧半圆位置调整,减少偏移量
        side: "right",
        color: J.value.color,
        animationType: "morphToSemiCircle"
      } : {
        show: !1,
        left: "0px",
        side: "left",
        color: J.value.color,
        animationType: "none"
      };
    }), aA = IA(!1), rA = IA({ x: 0, y: 0 }), QA = IA(!1), b = IA(null), T = IA(!1), _ = IA(!0), j = IA(!1), $ = IA(!1), uA = () => {
      const sA = A.scrollLeft || 0, bA = A.containerWidth || 0;
      if (!sA && !bA) return;
      const PA = parseInt(V.value.left), te = parseInt(V.value.width), re = PA + te / 2 - bA / 2;
      j.value = !0, $.value = !0, aA.value = !1, r("scroll-to-position", re);
    };
    Je(
      () => [A.scrollLeft, A.containerWidth],
      (sA, bA) => {
        const [PA, te] = sA, [he, re] = bA || [0, 0], ce = PA || 0, RA = te || 0, Pe = he || 0, Ce = re || 0;
        if (Math.abs(RA - Ce) > 1 && Ce > 0) {
          T.value = !0, pt(() => {
          }), setTimeout(() => {
            T.value = !1;
          }, 500);
          return;
        }
        _.value && ce >= 0 && RA > 0 && setTimeout(() => {
          _.value = !1;
        }, 1e3), ce !== Pe && !T.value && (QA.value = !0, b.value && clearTimeout(b.value), b.value = setTimeout(() => {
          QA.value = !1, j.value && (j.value = !1, setTimeout(() => {
            $.value = !1;
          }, 300));
        }, 200));
      }
    ), Je(
      () => A.hideBubbles,
      (sA, bA) => {
        bA && !sA && pt(() => {
        });
      }
    ), Je(
      () => z.value.show,
      () => {
      }
    );
    const hA = () => {
      T.value = !0, pt(() => {
      }), setTimeout(() => {
        T.value = !1;
      }, 300);
    };
    Sr(() => {
      window.addEventListener("resize", hA), window.addEventListener("zoom", hA);
    }), wr(() => {
      document.removeEventListener("mousemove", U), document.removeEventListener("mouseup", R), window.removeEventListener("resize", hA), window.removeEventListener("zoom", hA);
    });
    const mA = (sA) => {
      aA.value = !0;
      const PA = z.value.side === "right" ? -180 : 15;
      rA.value = {
        x: sA.clientX + PA,
        y: sA.clientY - 10
      };
    }, jA = () => {
      aA.value = !1;
    }, VA = (sA) => {
      sA.stopPropagation(), aA.value = !1;
    }, YA = (sA) => {
      if (!sA) return "未设置";
      const bA = n(sA);
      if (!bA) return "未设置";
      const PA = bA.getFullYear(), te = String(bA.getMonth() + 1).padStart(2, "0"), he = String(bA.getDate()).padStart(2, "0");
      return `${PA}-${te}-${he}`;
    }, nA = pe(() => {
      const sA = n(A.task.startDate), bA = n(A.task.endDate);
      let PA = 0;
      if (sA && bA) {
        const re = Math.abs(bA.getTime() - sA.getTime());
        PA = Math.ceil(re / (1e3 * 60 * 60 * 24)) * 8;
      }
      const te = A.task.progress || 0, he = Math.round(PA * te / 100);
      return {
        total: PA,
        used: he
      };
    }), UA = pe(() => !0), yA = () => {
      const sA = AA.value, bA = {};
      return sA.nameLeft && (bA.left = sA.nameLeft), sA.namePosition && (bA.position = sA.namePosition), sA.nameTop && (bA.top = sA.nameTop), bA;
    }, G = () => {
      const sA = AA.value, bA = {};
      return sA.progressLeft && (bA.left = sA.progressLeft), sA.progressPosition && (bA.position = sA.progressPosition), sA.progressTop && (bA.top = sA.progressTop), bA;
    }, CA = (sA, bA, PA) => {
      var he;
      let te = 0;
      for (const re of bA)
        if (PA === Xe.WEEK) {
          const ce = re.weeks || [];
          for (const RA of ce) {
            const Pe = new Date(RA.weekStart), Ce = new Date(RA.weekEnd);
            if (sA >= Pe && sA <= Ce) {
              const Ue = RA.subDays || [], ke = 60 / 7;
              for (let Se = 0; Se < Ue.length; Se++) {
                const xt = Ue[Se], gA = new Date(xt.date);
                if (gA.getFullYear() === sA.getFullYear() && gA.getMonth() === sA.getMonth() && gA.getDate() === sA.getDate())
                  return te + Se * ke;
              }
              const mt = sA.getDay();
              return te + mt * ke;
            }
            te += 60;
          }
        } else if (PA === Xe.MONTH) {
          const ce = new Date(re.startDate), RA = new Date(re.endDate);
          if (sA >= ce && sA <= RA) {
            const tt = 60 / (((he = re.monthData) == null ? void 0 : he.dayCount) || 30), Ue = sA.getDate();
            return te + (Ue - 1) * tt;
          }
          te += 60;
        }
      return te;
    }, DA = IA(!1), cA = IA({ x: 0, y: 0 }), HA = pe(() => A.task);
    function XA(sA) {
      if (window.dispatchEvent(new CustomEvent("close-all-taskbar-menus")), A.task.type !== "task" && A.task.type !== "story") {
        sA.preventDefault(), DA.value = !1;
        return;
      }
      sA.preventDefault(), DA.value = !0, cA.value = { x: sA.clientX, y: sA.clientY };
    }
    function OA() {
      DA.value = !1;
    }
    const ZA = (sA, bA) => {
      r("delete", sA, bA), OA();
    };
    return Sr(() => {
      window.addEventListener("close-all-taskbar-menus", OA);
    }), wr(() => {
      window.removeEventListener("close-all-taskbar-menus", OA);
    }), (sA, bA) => (wA(), FA(Ve, null, [
      N("div", {
        ref_key: "barRef",
        ref: P,
        class: Me(["task-bar", {
          dragging: c.value,
          resizing: d.value || h.value,
          completed: Y.value,
          "parent-task": sA.isParent,
          "week-view": O.value,
          "short-task-bar": q.value,
          "overflow-effect": lA.value
        }]),
        style: At({
          ...V.value,
          backgroundColor: J.value.bgColor,
          borderColor: J.value.borderColor,
          color: J.value.color,
          cursor: Y.value || sA.isParent ? "default" : "move",
          "--row-height": `${sA.rowHeight}px`
        }),
        onContextmenu: XA,
        onDblclick: X
      }, [
        sA.isParent ? (wA(), FA("div", Gp, kA(sA.task.name) + " (" + kA(sA.task.progress || 0) + "%)", 1)) : Be("", !0),
        !sA.isParent && sA.task.progress && sA.task.progress > 0 ? (wA(), FA("div", {
          key: 1,
          class: "progress-bar",
          style: At({
            width: W.value,
            backgroundColor: J.value.color
          })
        }, null, 4)) : Be("", !0),
        !Y.value && !sA.isParent ? (wA(), FA("div", {
          key: 2,
          class: "resize-handle resize-handle-left",
          onMousedown: bA[0] || (bA[0] = (PA) => I(PA, "resize-left"))
        }, null, 32)) : Be("", !0),
        sA.isParent ? Be("", !0) : (wA(), FA("div", {
          key: 3,
          class: "task-bar-content",
          onMousedown: bA[1] || (bA[1] = (PA) => I(PA, "drag"))
        }, [
          N("div", {
            class: "task-name",
            style: At(yA())
          }, kA(sA.task.name), 5),
          UA.value ? (wA(), FA("div", {
            key: 0,
            class: "task-progress",
            style: At(G())
          }, kA(sA.task.progress || 0) + "% ", 5)) : Be("", !0)
        ], 32)),
        !Y.value && !sA.isParent ? (wA(), FA("div", {
          key: 4,
          class: "resize-handle resize-handle-right",
          onMousedown: bA[2] || (bA[2] = (PA) => I(PA, "resize-right"))
        }, null, 32)) : Be("", !0),
        z.value.show && !sA.isParent ? (wA(), FA("div", {
          key: 5,
          class: Me(["bubble-indicator", [
            `bubble-${z.value.side}`,
            `bubble-animation-${z.value.animationType}`
          ]]),
          style: At({
            left: z.value.left,
            backgroundColor: z.value.color,
            borderColor: z.value.color
          }),
          onMouseenter: mA,
          onMouseleave: jA,
          onMousedown: VA,
          onClick: uA
        }, null, 38)) : Be("", !0),
        xr(Id, {
          visible: DA.value,
          task: HA.value,
          position: cA.value,
          onClose: OA,
          onStartTimer: bA[3] || (bA[3] = (PA) => sA.$emit("start-timer", A.task)),
          onStopTimer: bA[4] || (bA[4] = (PA) => sA.$emit("stop-timer", A.task)),
          onAddPredecessor: bA[5] || (bA[5] = (PA) => sA.$emit("add-predecessor", A.task)),
          onAddSuccessor: bA[6] || (bA[6] = (PA) => sA.$emit("add-successor", A.task)),
          onDelete: ZA
        }, null, 8, ["visible", "task", "position"])
      ], 38),
      (wA(), Dr(il, { to: "body" }, [
        aA.value ? (wA(), FA("div", {
          key: 0,
          class: "task-tooltip",
          style: At({
            left: `${rA.value.x}px`,
            top: `${rA.value.y}px`
          })
        }, [
          bA[12] || (bA[12] = N("div", { class: "tooltip-arrow" }, null, -1)),
          N("div", jp, kA(sA.task.name), 1),
          N("div", qp, [
            N("div", Wp, [
              bA[7] || (bA[7] = N("span", { class: "tooltip-label" }, "计划开始:", -1)),
              N("span", Xp, kA(YA(sA.task.startDate)), 1)
            ]),
            N("div", zp, [
              bA[8] || (bA[8] = N("span", { class: "tooltip-label" }, "计划结束:", -1)),
              N("span", Yp, kA(YA(sA.task.endDate)), 1)
            ]),
            N("div", Jp, [
              bA[9] || (bA[9] = N("span", { class: "tooltip-label" }, "计划工时:", -1)),
              N("span", $p, kA(nA.value.total) + "h", 1)
            ]),
            N("div", Zp, [
              bA[10] || (bA[10] = N("span", { class: "tooltip-label" }, "已用工时:", -1)),
              N("span", A0, kA(nA.value.used) + "h", 1)
            ]),
            N("div", e0, [
              bA[11] || (bA[11] = N("span", { class: "tooltip-label" }, "完成率:", -1)),
              N("span", t0, kA(sA.task.progress || 0) + "%", 1)
            ])
          ])
        ], 4)) : Be("", !0)
      ]))
    ], 64));
  }
}), n0 = /* @__PURE__ */ mr(r0, [["__scopeId", "data-v-3510a706"]]), s0 = ["title"], i0 = {
  key: 0,
  transform: "rotate(45 16 16)"
}, a0 = ["fill", "stroke"], o0 = { key: 1 }, l0 = {
  key: 2,
  transform: "rotate(45 16 16)"
}, c0 = ["fill", "stroke"], u0 = {
  key: 1,
  class: "milestone-label milestone-label-right"
}, f0 = { class: "tooltip-content" }, d0 = /* @__PURE__ */ vr({
  __name: "MilestonePoint",
  props: {
    date: {},
    rowHeight: {},
    dayWidth: {},
    startDate: {},
    name: {},
    milestone: {},
    scrollLeft: {},
    containerWidth: {},
    milestoneId: {},
    otherMilestones: {},
    timelineData: {},
    currentTimeScale: {}
  },
  emits: ["milestone-double-click", "update:milestone", "drag-end"],
  setup(t, { emit: e }) {
    const A = t, r = e, n = IA(!1), s = IA(0), a = IA(0), o = IA(null), c = (Q) => {
      if (Q.preventDefault(), Q.stopPropagation(), !(V.value.isSticky || V.value.isPushedOut || !V.value.showIcon))
        if (n.value = !1, o.value = null, document.removeEventListener("mousemove", p), document.removeEventListener("mouseup", m), A.milestone)
          r("milestone-double-click", A.milestone);
        else {
          const k = {
            name: A.name || "里程碑",
            startDate: A.date,
            type: "milestone"
          };
          r("milestone-double-click", k);
        }
    }, d = (Q, k) => {
      const U = new Date(Q);
      return U.setDate(U.getDate() + k), U;
    }, h = (Q) => {
      const k = Q.getFullYear(), U = String(Q.getMonth() + 1).padStart(2, "0"), R = String(Q.getDate()).padStart(2, "0");
      return `${k}-${U}-${R}`;
    }, g = (Q) => {
      V.value.isSticky || V.value.isPushedOut || !V.value.showIcon || (Q.preventDefault(), Q.stopPropagation(), !document.querySelector(".timeline")) || (s.value = Q.clientX, a.value = parseInt(D.value.left), o.value = null, window.addEventListener("timeline-auto-scroll", w), document.addEventListener("mousemove", p), document.addEventListener("mouseup", m));
    }, w = (Q) => {
      const { scrollDelta: k } = Q.detail;
      n.value && (s.value -= k);
    }, p = (Q) => {
      window.dispatchEvent(
        new CustomEvent("drag-boundary-check", {
          detail: {
            mouseX: Q.clientX,
            isDragging: n.value
          }
        })
      );
      const k = Q.clientX - s.value;
      if (Math.abs(k) > 3) {
        n.value = !0;
        const U = Math.max(0, a.value + k), R = d(A.startDate, U / A.dayWidth);
        o.value = {
          startDate: h(R)
        };
      }
    }, m = () => {
      if (window.dispatchEvent(
        new CustomEvent("drag-boundary-check", {
          detail: {
            mouseX: 0,
            isDragging: !1
          }
        })
      ), n.value && o.value && A.milestone) {
        const Q = {
          ...A.milestone,
          ...o.value
        };
        r("update:milestone", Q), r("drag-end", Q);
      }
      window.removeEventListener("timeline-auto-scroll", w), n.value = !1, o.value = null, document.removeEventListener("mousemove", p), document.removeEventListener("mouseup", m);
    }, F = (Q) => {
      if (Q.preventDefault(), Q.stopPropagation(), n.value || V.value.isPushedOut || !V.value.showIcon || V.value.isFullyVisible)
        return;
      const k = A.containerWidth || 0, U = parseInt(D.value.left) + 12;
      if (k > 0) {
        const R = Math.max(0, U - k / 2);
        window.dispatchEvent(
          new CustomEvent("milestone-click-locate", {
            detail: {
              scrollLeft: R,
              smooth: !0
            }
          })
        );
      }
    }, D = pe(() => {
      var R;
      const Q = (R = o.value) != null && R.startDate ? new Date(o.value.startDate) : new Date(A.date);
      if (!A.startDate || isNaN(new Date(A.date).getTime()))
        return {
          left: "0px",
          top: "0px",
          width: "auto",
          height: "auto"
        };
      let k = 0;
      const U = Math.min(A.rowHeight, A.dayWidth * 1.2, 24);
      return A.timelineData && A.currentTimeScale && (A.currentTimeScale === Xe.WEEK || A.currentTimeScale === Xe.MONTH) ? k = I(
        Q,
        A.timelineData,
        A.currentTimeScale
      ) - U / 2 : k = Math.floor(
        (Q.getTime() - A.startDate.getTime()) / 864e5
      ) * A.dayWidth + A.dayWidth / 2 - U / 2, {
        left: `${k}px`,
        top: `${(A.rowHeight - U) / 2}px`,
        width: "auto",
        height: "auto"
      };
    }), v = pe(() => "var(--gantt-danger, #f56c6c)"), E = pe(() => "var(--gantt-danger-light, #fab6b6)"), P = pe(() => {
      var Q;
      return ((Q = A.milestone) == null ? void 0 : Q.icon) || "diamond";
    }), V = pe(() => {
      const Q = A.scrollLeft || 0, k = A.containerWidth || 0;
      if (!k || k <= 0)
        return {
          showIcon: !0,
          showLabel: !0,
          isSticky: !1,
          stickyPosition: "none",
          iconLeft: "0px",
          isPushedOut: !1,
          clipPath: "none",
          isFullyVisible: !0
          // 无滚动信息时认为完全可见
        };
      const U = parseInt(D.value.left) + 12, R = Q, X = Q + k, AA = 24, z = U - AA / 2, aA = U + AA / 2, rA = A.milestoneId, QA = z >= R && aA <= X, b = A.otherMilestones || [];
      if (aA <= R + AA / 2) {
        const T = b.filter(
          (_) => _.id !== rA && _.stickyPosition === "left" && _.isSticky
        );
        if (T.length > 0) {
          const _ = parseInt(D.value.left) + 12;
          if (T.some(($) => $.originalLeft > _))
            return {
              showIcon: !1,
              showLabel: !1,
              isSticky: !1,
              stickyPosition: "none",
              iconLeft: "0px",
              isPushedOut: !0,
              clipPath: "none",
              isFullyVisible: !1
            };
        }
        return {
          showIcon: !0,
          showLabel: !1,
          isSticky: !0,
          stickyPosition: "left",
          iconLeft: `${R - parseInt(D.value.left) - AA / 2}px`,
          isPushedOut: !1,
          clipPath: "polygon(50% 0%, 100% 0%, 100% 100%, 50% 100%)",
          // 只显示右半部分
          isFullyVisible: !1
        };
      }
      if (z >= X - AA / 2) {
        const T = b.filter(
          (_) => _.id !== rA && _.stickyPosition === "right" && _.isSticky
        );
        if (T.length > 0) {
          const _ = parseInt(D.value.left) + 12;
          if (T.some(($) => $.originalLeft < _))
            return {
              showIcon: !1,
              showLabel: !1,
              isSticky: !1,
              stickyPosition: "none",
              iconLeft: "0px",
              isPushedOut: !0,
              clipPath: "none",
              isFullyVisible: !1
            };
        }
        return {
          showIcon: !0,
          showLabel: !1,
          isSticky: !0,
          stickyPosition: "right",
          iconLeft: `${X - parseInt(D.value.left) - AA / 2}px`,
          isPushedOut: !1,
          clipPath: "polygon(0% 0%, 50% 0%, 50% 100%, 0% 100%)",
          // 只显示左半部分
          isFullyVisible: !1
        };
      }
      return {
        showIcon: !0,
        showLabel: !0,
        isSticky: !1,
        stickyPosition: "none",
        iconLeft: "0px",
        isPushedOut: !1,
        clipPath: "none",
        isFullyVisible: QA
      };
    }), J = IA(!1), Y = IA({ x: 0, y: 0 }), W = (Q) => {
      var k;
      if (V.value.isSticky && V.value.showIcon && !V.value.isPushedOut) {
        J.value = !0;
        const U = !A.milestone || ((k = A.milestone) == null ? void 0 : k.icon) === "diamond" ? -300 : -270, R = V.value.stickyPosition === "left" ? 10 : U;
        Y.value = {
          x: Q.clientX + R,
          y: Q.clientY - 10
        };
      }
    }, O = () => {
      J.value = !1;
    }, q = (Q) => {
      if (!Q) return "未设置";
      try {
        const k = new Date(Q);
        if (isNaN(k.getTime())) return "未设置";
        const U = k.getFullYear(), R = String(k.getMonth() + 1).padStart(2, "0"), X = String(k.getDate()).padStart(2, "0");
        return `${U}-${R}-${X}`;
      } catch {
        return "未设置";
      }
    }, lA = pe(() => {
      var U, R;
      const Q = A.name || ((U = A.milestone) == null ? void 0 : U.name) || "里程碑", k = q(A.date || ((R = A.milestone) == null ? void 0 : R.startDate) || "");
      return `里程碑:${Q} - 目标日期:${k}`;
    });
    wr(() => {
      n.value = !1, o.value = null, document.removeEventListener("mousemove", p), document.removeEventListener("mouseup", m);
    });
    const I = (Q, k, U) => {
      var X;
      let R = 0;
      for (const AA of k)
        if (U === Xe.WEEK) {
          const z = AA.weeks || [];
          for (const aA of z) {
            const rA = new Date(aA.weekStart), QA = new Date(aA.weekEnd);
            if (Q >= rA && Q <= QA) {
              const T = aA.subDays || [], _ = 60 / 7;
              for (let $ = 0; $ < T.length; $++) {
                const uA = T[$], hA = new Date(uA.date);
                if (hA.getFullYear() === Q.getFullYear() && hA.getMonth() === Q.getMonth() && hA.getDate() === Q.getDate())
                  return R + $ * _ + _ / 2;
              }
              const j = Q.getDay();
              return R + j * _ + _ / 2;
            }
            R += 60;
          }
        } else if (U === Xe.MONTH) {
          const z = new Date(AA.startDate), aA = new Date(AA.endDate);
          if (Q >= z && Q <= aA) {
            const b = 60 / (((X = AA.monthData) == null ? void 0 : X.dayCount) || 30), T = Q.getDate();
            return R + (T - 1) * b + b / 2;
          }
          R += 60;
        }
      return R;
    };
    return (Q, k) => (wA(), FA(Ve, null, [
      N("div", {
        class: Me(["milestone", {
          dragging: n.value,
          "milestone-sticky": V.value.isSticky,
          "milestone-sticky-left": V.value.stickyPosition === "left",
          "milestone-sticky-right": V.value.stickyPosition === "right",
          "milestone-pushed-out": V.value.isPushedOut
        }]),
        style: At(D.value),
        title: V.value.isSticky ? "" : A.name || "里程碑",
        onClick: Br(F, ["stop"])
      }, [
        V.value.showIcon ? (wA(), FA("svg", {
          key: 0,
          width: 24,
          height: 24,
          viewBox: "0 0 24 24",
          style: At([{
            position: V.value.isSticky ? "relative" : "static",
            left: V.value.isSticky ? V.value.iconLeft : "0px",
            clipPath: V.value.clipPath,
            zIndex: V.value.isSticky ? 200 : 120
          }, { cursor: "pointer" }]),
          onMouseenter: W,
          onMouseleave: O,
          onClick: Br(F, ["stop"]),
          onDblclick: Br(c, ["stop"]),
          onMousedown: Br(g, ["stop"])
        }, [
          P.value === "diamond" ? (wA(), FA("g", i0, [
            N("rect", {
              x: "4",
              y: "8",
              width: "15",
              height: "15",
              rx: "6",
              ry: "6",
              fill: v.value,
              stroke: E.value,
              "stroke-width": "2"
            }, null, 8, a0)
          ])) : P.value === "rocket" ? (wA(), FA("g", o0, k[0] || (k[0] = [
            N("foreignObject", {
              x: "0",
              y: "0",
              width: "24",
              height: "24"
            }, [
              N("div", { class: "rocket-emoji" }, "🚀")
            ], -1)
          ]))) : (wA(), FA("g", l0, [
            N("rect", {
              x: "4",
              y: "8",
              width: "15",
              height: "15",
              rx: "6",
              ry: "6",
              fill: v.value,
              stroke: E.value,
              "stroke-width": "2"
            }, null, 8, c0)
          ]))
        ], 36)) : Be("", !0),
        A.name && V.value.showLabel ? (wA(), FA("span", u0, kA(A.name), 1)) : Be("", !0)
      ], 14, s0),
      (wA(), Dr(il, { to: "body" }, [
        J.value && V.value.isSticky ? (wA(), FA("div", {
          key: 0,
          class: "milestone-tooltip",
          style: At({
            left: `${Y.value.x}px`,
            top: `${Y.value.y}px`
          })
        }, [
          N("div", f0, kA(lA.value), 1)
        ], 4)) : Be("", !0)
      ]))
    ], 64));
  }
}), nf = /* @__PURE__ */ mr(d0, [["__scopeId", "data-v-8cabe4ed"]]), h0 = { class: "el-input__wrapper" }, g0 = { class: "el-input__inner" }, p0 = ["value", "placeholder", "disabled"], B0 = { class: "el-input__suffix" }, w0 = { class: "el-input__suffix-inner" }, v0 = {
  key: 1,
  class: "el-input__icon"
}, m0 = {
  key: 0,
  class: "el-year-picker"
}, y0 = { class: "el-year-picker__header" }, C0 = { class: "el-year-picker__header-label" }, b0 = { class: "el-year-picker__content" }, F0 = ["onClick"], Q0 = {
  key: 1,
  class: "el-month-picker"
}, U0 = { class: "el-month-picker__header" }, L0 = { class: "el-month-picker__content" }, E0 = ["onClick"], x0 = {
  key: 2,
  class: "el-date-picker__content-wrapper"
}, I0 = { class: "el-date-picker__header" }, S0 = { class: "el-date-picker__header-label" }, D0 = { class: "el-date-picker__content" }, k0 = { class: "el-date-table__header" }, H0 = { class: "el-date-table__body" }, T0 = ["onClick"], N0 = { class: "el-date-table__cell-inner" }, _0 = /* @__PURE__ */ vr({
  __name: "DatePicker",
  props: {
    modelValue: { default: "" },
    type: { default: "date" },
    placeholder: { default: "请选择日期" },
    startPlaceholder: { default: "开始日期" },
    endPlaceholder: { default: "结束日期" },
    disabled: { type: Boolean, default: !1 },
    clearable: { type: Boolean, default: !0 },
    size: { default: "default" },
    format: { default: "YYYY-MM-DD" },
    valueFormat: { default: "YYYY-MM-DD" },
    rangeSeparator: { default: "至" }
  },
  emits: ["update:modelValue", "change", "focus", "blur"],
  setup(t, { emit: e }) {
    const A = t, r = e, n = IA(!1), s = IA(!1), a = IA(!1), o = IA(!1), c = IA(!1), d = IA(), h = IA(), g = IA(null), w = IA(0), p = IA((/* @__PURE__ */ new Date()).getFullYear()), m = IA((/* @__PURE__ */ new Date()).getMonth()), F = IA(Math.floor((/* @__PURE__ */ new Date()).getFullYear() / 10) * 10), D = IA(""), v = IA(""), E = IA(""), P = IA("start"), V = (CA) => {
      if (!CA) return "";
      const DA = new Date(CA);
      return `${DA.getFullYear()}-${String(DA.getMonth() + 1).padStart(2, "0")}-${String(DA.getDate()).padStart(2, "0")}`;
    }, J = pe(() => {
      if (A.type === "daterange") {
        const CA = v.value ? V(v.value) : "", DA = E.value ? V(E.value) : "";
        return CA && DA ? `${CA} ${A.rangeSeparator} ${DA}` : CA || DA || "";
      }
      return D.value ? V(D.value) : "";
    });
    Je(
      () => A.modelValue,
      (CA) => {
        A.type === "daterange" ? Array.isArray(CA) && CA.length === 2 ? (v.value = CA[0] || "", E.value = CA[1] || "") : (v.value = "", E.value = "") : D.value = CA || "";
      },
      { immediate: !0 }
    );
    const Y = () => {
      A.type === "daterange" ? (v.value = "", E.value = "", r("update:modelValue", ["", ""]), r("change", ["", ""])) : (D.value = "", r("update:modelValue", ""), r("change", "")), a.value = !1;
    }, W = () => {
      if (!A.disabled && (a.value = !a.value, a.value)) {
        lA.x = window.scrollX, lA.y = window.scrollY, w.value++;
        let CA;
        A.type === "daterange" ? CA = v.value ? new Date(v.value) : /* @__PURE__ */ new Date() : CA = D.value ? new Date(D.value) : /* @__PURE__ */ new Date(), p.value = CA.getFullYear(), m.value = CA.getMonth();
      }
    }, O = () => {
      a.value = !1, o.value = !1, c.value = !1, n.value = !1, g.value && (clearTimeout(g.value), g.value = null);
    }, q = (CA) => {
      var cA, HA;
      const DA = CA.target;
      !((cA = d.value) != null && cA.contains(DA)) && !((HA = h.value) != null && HA.contains(DA)) && O();
    }, lA = { x: 0, y: 0 }, I = () => {
      if (a.value) {
        const CA = window.scrollX, DA = window.scrollY, cA = Math.abs(CA - lA.x), HA = Math.abs(DA - lA.y);
        cA < 50 && HA < 50 ? w.value++ : O(), lA.x = CA, lA.y = DA;
      }
    }, Q = () => {
      a.value && w.value++;
    }, k = pe(() => {
      const CA = new Date(p.value, m.value, 1), DA = new Date(CA);
      DA.setDate(DA.getDate() - CA.getDay());
      const cA = [];
      for (let HA = 0; HA < 42; HA++) {
        const XA = new Date(DA);
        XA.setDate(DA.getDate() + HA);
        const OA = `${XA.getFullYear()}-${String(XA.getMonth() + 1).padStart(2, "0")}-${String(XA.getDate()).padStart(2, "0")}`, ZA = XA.getMonth() === m.value, sA = OA === (/* @__PURE__ */ new Date()).toISOString().split("T")[0], bA = A.type === "daterange" ? OA === v.value || OA === E.value : OA === D.value, PA = A.type === "daterange" && v.value && E.value ? OA >= v.value && OA <= E.value : !1;
        cA.push({
          date: XA,
          dateStr: OA,
          day: XA.getDate(),
          isCurrentMonth: ZA,
          isToday: sA,
          isSelected: bA,
          isInRange: PA
        });
      }
      return cA;
    }), U = (CA) => {
      if (A.type === "daterange")
        if (P.value === "start" || !v.value || v.value && E.value)
          v.value = CA, E.value = "", P.value = "end";
        else {
          CA < v.value ? (E.value = v.value, v.value = CA) : E.value = CA, P.value = "start";
          const DA = [v.value, E.value];
          r("update:modelValue", DA), r("change", DA), setTimeout(() => {
            O();
          }, 150);
        }
      else
        D.value = CA, r("update:modelValue", CA), r("change", CA), setTimeout(() => {
          O();
        }, 150);
    }, R = (CA) => {
      CA && (CA.preventDefault(), CA.stopPropagation()), g.value && (clearTimeout(g.value), g.value = null), m.value === 0 ? (m.value = 11, p.value--) : m.value--;
    }, X = (CA) => {
      CA && (CA.preventDefault(), CA.stopPropagation()), g.value && (clearTimeout(g.value), g.value = null), m.value === 11 ? (m.value = 0, p.value++) : m.value++;
    }, AA = (CA) => {
      CA && (CA.preventDefault(), CA.stopPropagation()), g.value && (clearTimeout(g.value), g.value = null), p.value--;
    }, z = (CA) => {
      CA && (CA.preventDefault(), CA.stopPropagation()), g.value && (clearTimeout(g.value), g.value = null), p.value++;
    }, aA = (CA) => {
      CA && (CA.preventDefault(), CA.stopPropagation()), g.value && (clearTimeout(g.value), g.value = null), o.value = !0, c.value = !1, F.value = Math.floor(p.value / 10) * 10;
    }, rA = (CA) => {
      CA && (CA.preventDefault(), CA.stopPropagation()), g.value && (clearTimeout(g.value), g.value = null), c.value = !0, o.value = !1;
    }, QA = (CA, DA) => {
      DA && (DA.preventDefault(), DA.stopPropagation()), g.value && (clearTimeout(g.value), g.value = null), p.value = CA, o.value = !1, c.value = !0;
    }, b = (CA, DA) => {
      DA && (DA.preventDefault(), DA.stopPropagation()), g.value && (clearTimeout(g.value), g.value = null), m.value = CA, c.value = !1;
    }, T = (CA) => {
      CA && (CA.preventDefault(), CA.stopPropagation()), g.value && (clearTimeout(g.value), g.value = null), F.value -= 10;
    }, _ = (CA) => {
      CA && (CA.preventDefault(), CA.stopPropagation()), g.value && (clearTimeout(g.value), g.value = null), F.value += 10;
    }, j = pe(() => {
      const CA = [];
      for (let DA = 0; DA < 10; DA++)
        CA.push(F.value + DA);
      return CA;
    }), $ = [
      "一月",
      "二月",
      "三月",
      "四月",
      "五月",
      "六月",
      "七月",
      "八月",
      "九月",
      "十月",
      "十一月",
      "十二月"
    ], uA = ["日", "一", "二", "三", "四", "五", "六"];
    Sr(() => {
      document.addEventListener("click", q), window.addEventListener("scroll", I, !0), window.addEventListener("resize", Q), lA.x = window.scrollX, lA.y = window.scrollY;
    }), wr(() => {
      document.removeEventListener("click", q), window.removeEventListener("scroll", I, !0), window.removeEventListener("resize", Q), g.value && (clearTimeout(g.value), g.value = null);
    });
    const hA = (CA) => {
      g.value && (clearTimeout(g.value), g.value = null), n.value = !0, r("focus", CA);
    }, mA = (CA) => {
      g.value = setTimeout(() => {
        n.value = !1, O(), r("blur", CA);
      }, 150);
    }, jA = () => {
      g.value && (clearTimeout(g.value), g.value = null);
    }, VA = () => {
      g.value = setTimeout(() => {
        O();
      }, 150);
    }, YA = () => {
      s.value = !0;
    }, nA = () => {
      s.value = !1;
    }, UA = pe(() => [
      "el-date-picker",
      `el-date-picker--${A.size}`,
      {
        "is-disabled": A.disabled,
        "is-focused": n.value,
        "is-range": A.type === "daterange"
      }
    ]), yA = pe(() => !A.clearable || A.disabled ? !1 : A.type === "daterange" ? (v.value || E.value) && s.value : D.value && s.value), G = pe(() => {
      if (!d.value || !a.value) return {};
      const CA = d.value.getBoundingClientRect(), DA = 280, cA = 300, HA = 4, XA = window.innerWidth, OA = window.innerHeight, ZA = {
        position: "fixed",
        zIndex: "10000"
      }, sA = OA - CA.bottom, bA = CA.top;
      sA >= cA + HA || sA >= bA ? ZA.top = `${CA.bottom + HA}px` : ZA.top = `${CA.top - cA - HA}px`;
      const PA = XA - CA.left, te = CA.right;
      if (PA >= DA)
        ZA.left = `${CA.left}px`;
      else if (te >= DA)
        ZA.left = `${CA.right - DA}px`;
      else {
        const ce = CA.left + (CA.width - DA) / 2, RA = HA, Pe = XA - DA - HA;
        ZA.left = `${Math.max(RA, Math.min(ce, Pe))}px`;
      }
      const he = parseFloat(ZA.top), re = parseFloat(ZA.left);
      return he < HA ? ZA.top = `${HA}px` : he + cA > OA - HA && (ZA.top = `${OA - cA - HA}px`), re < HA ? ZA.left = `${HA}px` : re + DA > XA - HA && (ZA.left = `${XA - DA - HA}px`), ZA;
    });
    return (CA, DA) => (wA(), FA("div", {
      class: Me(UA.value),
      onMouseenter: YA,
      onMouseleave: nA
    }, [
      N("div", {
        ref_key: "inputRef",
        ref: d,
        class: "el-input",
        onClick: W
      }, [
        N("div", h0, [
          N("div", g0, [
            N("input", {
              value: J.value,
              type: "text",
              class: "el-input__inner-input",
              placeholder: CA.type === "daterange" ? `${CA.startPlaceholder} ${CA.rangeSeparator} ${CA.endPlaceholder}` : CA.placeholder,
              disabled: CA.disabled,
              readonly: "",
              onFocus: hA,
              onBlur: mA
            }, null, 40, p0)
          ]),
          N("div", B0, [
            N("div", w0, [
              yA.value ? (wA(), FA("button", {
                key: 0,
                type: "button",
                class: "el-input__clear",
                onClick: Br(Y, ["stop"])
              }, DA[3] || (DA[3] = [
                N("svg", {
                  class: "el-icon",
                  viewBox: "0 0 1024 1024"
                }, [
                  N("path", {
                    fill: "currentColor",
                    d: "M764.288 214.592 512 466.88 259.712 214.592a31.936 31.936 0 0 0-45.12 45.12L466.752 512 214.528 764.224a31.936 31.936 0 1 0 45.12 45.184L512 557.184l252.288 252.288a31.936 31.936 0 0 0 45.12-45.12L557.12 512.064l252.288-252.352a31.936 31.936 0 1 0-45.12-45.184z"
                  })
                ], -1)
              ]))) : (wA(), FA("span", v0, DA[4] || (DA[4] = [
                N("svg", {
                  class: "el-icon",
                  viewBox: "0 0 1024 1024"
                }, [
                  N("path", {
                    fill: "currentColor",
                    d: "M128 384v512h768V384H128zm-32-64h832a32 32 0 0 1 32 32v576a32 32 0 0 1-32 32H96a32 32 0 0 1-32-32V352a32 32 0 0 1 32-32z"
                  }),
                  N("path", {
                    fill: "currentColor",
                    d: "M288 128a32 32 0 0 1 64 0v192a32 32 0 0 1-64 0V128zm384 0a32 32 0 0 1 64 0v192a32 32 0 0 1-64 0V128z"
                  }),
                  N("path", {
                    fill: "currentColor",
                    d: "M96 320h832q32 0 32 32t-32 32H96q-32 0-32-32t32-32z"
                  })
                ], -1)
              ])))
            ])
          ])
        ])
      ], 512),
      (wA(), Dr(il, { to: "body" }, [
        xr(Rg, { name: "picker-fade" }, {
          default: Kg(() => [
            a.value ? (wA(), FA("div", {
              key: 0,
              ref_key: "pickerRef",
              ref: h,
              class: "el-picker-panel",
              style: At(G.value),
              tabindex: "-1",
              onFocus: jA,
              onBlur: VA
            }, [
              o.value ? (wA(), FA("div", m0, [
                N("div", y0, [
                  N("button", {
                    type: "button",
                    class: "el-picker-panel__icon-btn",
                    onClick: T
                  }, " << "),
                  N("span", C0, kA(F.value) + " - " + kA(F.value + 9), 1),
                  N("button", {
                    type: "button",
                    class: "el-picker-panel__icon-btn",
                    onClick: _
                  }, " >> ")
                ]),
                N("div", b0, [
                  (wA(!0), FA(Ve, null, ht(j.value, (cA) => (wA(), FA("div", {
                    key: cA,
                    class: Me(["el-year-picker__item", { "is-current": cA === p.value }]),
                    onClick: (HA) => QA(cA, HA)
                  }, kA(cA), 11, F0))), 128))
                ])
              ])) : c.value ? (wA(), FA("div", Q0, [
                N("div", U0, [
                  N("button", {
                    type: "button",
                    class: "el-picker-panel__icon-btn",
                    onClick: AA
                  }, " << "),
                  N("span", {
                    class: "el-month-picker__header-label",
                    onClick: DA[0] || (DA[0] = (cA) => aA(cA))
                  }, kA(p.value) + "年 ", 1),
                  N("button", {
                    type: "button",
                    class: "el-picker-panel__icon-btn",
                    onClick: z
                  }, " >> ")
                ]),
                N("div", L0, [
                  (wA(), FA(Ve, null, ht($, (cA, HA) => N("div", {
                    key: HA,
                    class: Me(["el-month-picker__item", { "is-current": HA === m.value }]),
                    onClick: (XA) => b(HA, XA)
                  }, kA(cA), 11, E0)), 64))
                ])
              ])) : (wA(), FA("div", x0, [
                N("div", I0, [
                  N("button", {
                    type: "button",
                    class: "el-picker-panel__icon-btn",
                    onClick: AA
                  }, " << "),
                  N("button", {
                    type: "button",
                    class: "el-picker-panel__icon-btn",
                    onClick: R
                  }, " < "),
                  N("span", S0, [
                    N("span", {
                      class: "el-date-picker__header-year",
                      onClick: DA[1] || (DA[1] = (cA) => aA(cA))
                    }, kA(p.value) + "年 ", 1),
                    N("span", {
                      class: "el-date-picker__header-month",
                      onClick: DA[2] || (DA[2] = (cA) => rA(cA))
                    }, kA($[m.value]), 1)
                  ]),
                  N("button", {
                    type: "button",
                    class: "el-picker-panel__icon-btn",
                    onClick: X
                  }, " > "),
                  N("button", {
                    type: "button",
                    class: "el-picker-panel__icon-btn",
                    onClick: z
                  }, " >> ")
                ]),
                N("div", D0, [
                  N("div", k0, [
                    (wA(), FA(Ve, null, ht(uA, (cA) => N("div", {
                      key: cA,
                      class: "el-date-table__header-cell"
                    }, kA(cA), 1)), 64))
                  ]),
                  N("div", H0, [
                    (wA(!0), FA(Ve, null, ht(k.value, (cA) => (wA(), FA("div", {
                      key: `${cA.date.getTime()}`,
                      class: Me(["el-date-table__cell", {
                        "is-other-month": !cA.isCurrentMonth,
                        "is-today": cA.isToday,
                        "is-selected": cA.isSelected,
                        "is-in-range": cA.isInRange,
                        "is-range-start": CA.type === "daterange" && cA.dateStr === v.value,
                        "is-range-end": CA.type === "daterange" && cA.dateStr === E.value
                      }]),
                      onClick: (HA) => U(cA.dateStr)
                    }, [
                      N("div", N0, kA(cA.day), 1)
                    ], 10, T0))), 128))
                  ])
                ])
              ]))
            ], 36)) : Be("", !0)
          ]),
          _: 1
        })
      ]))
    ], 34));
  }
}), Mc = /* @__PURE__ */ mr(_0, [["__scopeId", "data-v-fec0bd04"]]), M0 = { class: "milestone-dialog-header" }, P0 = { class: "milestone-dialog-title" }, O0 = ["title"], R0 = { class: "milestone-dialog-content" }, K0 = { class: "milestone-form-row" }, V0 = { class: "milestone-form-item milestone-form-item-full" }, G0 = {
  class: "milestone-form-label required",
  for: "milestone-name"
}, j0 = ["placeholder"], q0 = {
  key: 0,
  class: "milestone-form-error"
}, W0 = { class: "milestone-form-row" }, X0 = { class: "milestone-form-item" }, z0 = {
  class: "milestone-form-label required",
  for: "milestone-date"
}, Y0 = {
  key: 0,
  class: "milestone-form-error"
}, J0 = { class: "milestone-form-item" }, $0 = {
  class: "milestone-form-label",
  for: "milestone-icon"
}, Z0 = ["aria-expanded"], A1 = { class: "selected-icon" }, e1 = {
  key: 0,
  viewBox: "0 0 24 24",
  fill: "none",
  stroke: "currentColor",
  "stroke-width": "2"
}, t1 = {
  key: 1,
  class: "rocket-emoji-mini"
}, r1 = {
  key: 0,
  class: "milestone-icon-options"
}, n1 = { class: "milestone-form-row" }, s1 = { class: "milestone-form-item milestone-form-item-full" }, i1 = {
  class: "milestone-form-label",
  for: "milestone-description"
}, a1 = { class: "textarea-wrapper" }, o1 = ["placeholder"], l1 = { class: "textarea-footer" }, c1 = { class: "char-count" }, u1 = { class: "milestone-dialog-footer" }, f1 = { class: "milestone-dialog-footer-left" }, d1 = { class: "milestone-dialog-footer-right" }, h1 = ["disabled"], g1 = /* @__PURE__ */ vr({
  __name: "MilestoneDialog",
  props: {
    visible: { type: Boolean },
    milestone: {}
  },
  emits: ["update:visible", "close", "save", "delete"],
  setup(t, { emit: e }) {
    const A = t, r = e, n = Wo({
      name: "",
      startDate: "",
      assignee: "",
      type: "milestone",
      icon: "diamond",
      description: ""
    }), s = Wo({
      name: "",
      startDate: ""
    }), a = IA(!1), o = IA(!1), c = IA(null), d = () => {
      const Y = c.value;
      Y && (Y.style.height = "auto", Y.style.height = `${Math.min(Y.scrollHeight, 120)}px`);
    };
    Je(
      () => A.milestone,
      (Y) => {
        Y ? Object.assign(n, {
          id: Y.id,
          name: Y.name || "",
          startDate: Y.startDate || "",
          assignee: Y.assignee || "",
          type: Y.type || "milestone",
          icon: Y.icon || "diamond",
          description: Y.description || ""
        }) : Object.assign(n, {
          id: void 0,
          name: "",
          startDate: "",
          assignee: "",
          type: "milestone",
          icon: "diamond",
          description: ""
        }), s.name = "", s.startDate = "";
      },
      { immediate: !0 }
    );
    const h = () => {
      s.name = "", s.startDate = "";
      let Y = !0;
      return n.name.trim() || (s.name = J("milestoneNameRequired"), Y = !1), n.startDate || (s.startDate = J("milestoneDateRequired"), Y = !1), Y;
    }, g = pe(() => n.name.trim() && n.startDate), w = (Y) => {
      n.icon = Y, a.value = !1;
    }, p = () => {
      h() && (r("save", { ...n }), E());
    }, m = () => {
      n.id && (o.value = !0);
    }, F = () => {
      n.id && (r("delete", n.id), o.value = !1, E());
    }, D = () => {
      o.value = !1;
    }, v = pe(() => A.milestone && A.milestone.id), E = () => {
      a.value = !1, r("update:visible", !1), r("close");
    }, P = () => {
      E();
    }, { t: V } = In(), J = (Y) => V.value[Y] || Y;
    return (Y, W) => {
      var O;
      return Y.visible ? (wA(), FA("div", {
        key: 0,
        class: "milestone-dialog-overlay",
        onClick: P
      }, [
        N("div", {
          class: "milestone-dialog",
          onClick: W[6] || (W[6] = Br(() => {
          }, ["stop"]))
        }, [
          N("div", M0, [
            N("h3", P0, [
              W[7] || (W[7] = N("svg", {
                class: "milestone-icon",
                viewBox: "0 0 24 24",
                fill: "none",
                stroke: "currentColor",
                "stroke-width": "2"
              }, [
                N("g", { transform: "rotate(45 12 12)" }, [
                  N("rect", {
                    x: "4",
                    y: "4",
                    width: "16",
                    height: "16",
                    rx: "4",
                    ry: "4",
                    fill: "currentColor",
                    opacity: "0.1"
                  }),
                  N("rect", {
                    x: "4",
                    y: "4",
                    width: "16",
                    height: "16",
                    rx: "4",
                    ry: "4",
                    stroke: "currentColor",
                    fill: "none"
                  })
                ])
              ], -1)),
              Tt(" " + kA(v.value ? de(V).editMilestone : de(V).newMilestone), 1)
            ]),
            N("button", {
              class: "milestone-dialog-close",
              title: J("close"),
              onClick: E
            }, "×", 8, O0)
          ]),
          N("div", R0, [
            N("form", {
              class: "milestone-form",
              onSubmit: Br(p, ["prevent"])
            }, [
              N("div", K0, [
                N("div", V0, [
                  N("label", G0, kA(J("milestoneName")), 1),
                  Er(N("input", {
                    id: "milestone-name",
                    "onUpdate:modelValue": W[0] || (W[0] = (q) => n.name = q),
                    type: "text",
                    class: Me(["milestone-form-input", { error: s.name }]),
                    placeholder: J("enterMilestoneName"),
                    required: ""
                  }, null, 10, j0), [
                    [Ln, n.name]
                  ]),
                  s.name ? (wA(), FA("span", q0, kA(s.name), 1)) : Be("", !0)
                ])
              ]),
              N("div", W0, [
                N("div", X0, [
                  N("label", z0, kA(J("milestoneDate")), 1),
                  xr(Mc, {
                    id: "milestone-date",
                    modelValue: n.startDate,
                    "onUpdate:modelValue": W[1] || (W[1] = (q) => n.startDate = q),
                    type: "date",
                    placeholder: "请选择里程碑日期",
                    class: Me({ error: s.startDate })
                  }, null, 8, ["modelValue", "class"]),
                  s.startDate ? (wA(), FA("span", Y0, kA(s.startDate), 1)) : Be("", !0)
                ]),
                N("div", J0, [
                  N("label", $0, kA(J("milestoneIcon")), 1),
                  N("div", {
                    class: Me(["milestone-icon-dropdown", { active: a.value }])
                  }, [
                    N("button", {
                      id: "milestone-icon",
                      type: "button",
                      class: "milestone-icon-trigger",
                      "aria-expanded": a.value,
                      "aria-haspopup": "listbox",
                      onClick: W[2] || (W[2] = (q) => a.value = !a.value)
                    }, [
                      N("div", A1, [
                        n.icon === "diamond" ? (wA(), FA("svg", e1, W[8] || (W[8] = [
                          N("g", { transform: "rotate(45 12 12)" }, [
                            N("rect", {
                              x: "6",
                              y: "6",
                              width: "12",
                              height: "12",
                              rx: "3",
                              ry: "3",
                              fill: "currentColor"
                            })
                          ], -1)
                        ]))) : n.icon === "rocket" ? (wA(), FA("div", t1, "🚀")) : Be("", !0),
                        N("span", null, kA(J(n.icon || "diamond")), 1)
                      ]),
                      W[9] || (W[9] = N("svg", {
                        class: "dropdown-arrow",
                        viewBox: "0 0 24 24",
                        fill: "none",
                        stroke: "currentColor",
                        "stroke-width": "2"
                      }, [
                        N("polyline", { points: "6,9 12,15 18,9" })
                      ], -1))
                    ], 8, Z0),
                    a.value ? (wA(), FA("div", r1, [
                      N("div", {
                        class: Me(["icon-option", { selected: n.icon === "diamond" }]),
                        onClick: W[3] || (W[3] = (q) => w("diamond"))
                      }, [
                        W[10] || (W[10] = N("svg", {
                          viewBox: "0 0 24 24",
                          fill: "none",
                          stroke: "currentColor",
                          "stroke-width": "2"
                        }, [
                          N("g", { transform: "rotate(45 12 12)" }, [
                            N("rect", {
                              x: "6",
                              y: "6",
                              width: "12",
                              height: "12",
                              rx: "3",
                              ry: "3",
                              fill: "currentColor"
                            })
                          ])
                        ], -1)),
                        N("span", null, kA(J("diamond")), 1)
                      ], 2),
                      N("div", {
                        class: Me(["icon-option", { selected: n.icon === "rocket" }]),
                        onClick: W[4] || (W[4] = (q) => w("rocket"))
                      }, [
                        W[11] || (W[11] = N("div", { class: "rocket-emoji-option" }, "🚀", -1)),
                        N("span", null, kA(J("rocket")), 1)
                      ], 2)
                    ])) : Be("", !0)
                  ], 2)
                ])
              ]),
              N("div", n1, [
                N("div", s1, [
                  N("label", i1, kA(J("description")), 1),
                  N("div", a1, [
                    Er(N("textarea", {
                      id: "milestone-description",
                      ref_key: "descriptionTextarea",
                      ref: c,
                      "onUpdate:modelValue": W[5] || (W[5] = (q) => n.description = q),
                      class: "milestone-form-textarea",
                      placeholder: J("enterDescription"),
                      rows: "4",
                      maxlength: "500",
                      onInput: d
                    }, null, 40, o1), [
                      [Ln, n.description]
                    ]),
                    N("div", l1, [
                      N("span", c1, kA(((O = n.description) == null ? void 0 : O.length) || 0) + "/500", 1)
                    ])
                  ])
                ])
              ])
            ], 32)
          ]),
          N("div", u1, [
            N("div", f1, [
              v.value ? (wA(), FA("button", {
                key: 0,
                type: "button",
                class: "btn btn-danger",
                onClick: m
              }, kA(de(V).delete), 1)) : Be("", !0)
            ]),
            N("div", d1, [
              N("button", {
                type: "button",
                class: "btn btn-default",
                onClick: E
              }, kA(de(V).cancel), 1),
              N("button", {
                type: "button",
                class: "btn btn-primary",
                disabled: !g.value,
                onClick: p
              }, kA(de(V).confirm), 9, h1)
            ])
          ])
        ]),
        xr(vu, {
          visible: o.value,
          title: de(V).delete,
          message: de(V).confirmDelete,
          "confirm-text": de(V).confirm,
          "cancel-text": de(V).cancel,
          onConfirm: F,
          onCancel: D
        }, null, 8, ["visible", "title", "message", "confirm-text", "cancel-text"])
      ])) : Be("", !0);
    };
  }
}), p1 = /* @__PURE__ */ mr(g1, [["__scopeId", "data-v-67a961b6"]]), B1 = { class: "timeline-header" }, w1 = { class: "timeline-header-row year-row" }, v1 = { class: "year-label" }, m1 = { class: "timeline-header-row months-row" }, y1 = { class: "month-label" }, C1 = { class: "timeline-header-row year-month-row" }, b1 = { class: "year-month-label" }, F1 = { class: "timeline-header-row days-row" }, Q1 = { class: "week-label" }, U1 = { class: "week-sub-days" }, L1 = { class: "day-label" }, E1 = ["width", "height"], x1 = ["d"], I1 = ["onMouseenter"], sf = 50, af = 5, S1 = /* @__PURE__ */ vr({
  __name: "Timeline",
  props: {
    tasks: { default: () => [] },
    milestones: { default: () => [] },
    onTaskDoubleClick: { type: Function, default: void 0 },
    editComponent: { default: void 0 },
    useDefaultDrawer: { type: Boolean, default: !0 },
    onTaskDelete: { type: Function, default: void 0 },
    onMilestoneSave: { type: Function, default: void 0 },
    startDate: { default: void 0 },
    endDate: { default: void 0 }
  },
  emits: ["timeline-scale-changed", "edit-task", "start-timer", "stop-timer", "add-predecessor", "add-successor", "delete"],
  setup(t, { expose: e, emit: A }) {
    const r = t, n = A, { formatYearMonth: s, formatMonth: a } = In(), o = () => {
      const vA = /* @__PURE__ */ new Date(), xA = new Date(vA.getFullYear(), vA.getMonth() - 6, 1), dA = new Date(vA.getFullYear(), vA.getMonth() + 6 + 1, 0);
      return {
        startDate: xA,
        endDate: dA
      };
    }, c = pe(() => r.startDate ? new Date(r.startDate) : o().startDate), d = pe(() => r.endDate ? new Date(r.endDate) : o().endDate), h = IA({
      startDate: c.value,
      endDate: d.value,
      zoomLevel: 1
    }), g = IA(Xe.DAY);
    Je([c, d], ([vA, xA]) => {
      h.value.startDate = vA, h.value.endDate = xA;
    });
    const w = pe(() => r.tasks || []), p = pe(() => g.value === Xe.WEEK ? 60 / 7 : g.value === Xe.MONTH ? 2 : 30), m = () => {
      if (!w.value || w.value.length === 0)
        return null;
      const vA = [], xA = (WA) => {
        WA.startDate && vA.push(new Date(WA.startDate)), WA.endDate && vA.push(new Date(WA.endDate)), WA.children && WA.children.length > 0 && WA.children.forEach(xA);
      };
      if (w.value.forEach(xA), vA.length === 0)
        return null;
      const dA = vA.filter((WA) => !isNaN(WA.getTime()));
      if (dA.length === 0)
        return null;
      const zA = new Date(Math.min(...dA.map((WA) => WA.getTime()))), ne = new Date(Math.max(...dA.map((WA) => WA.getTime())));
      return { minDate: zA, maxDate: ne };
    }, F = () => {
      const vA = m();
      if (!vA) {
        const WA = /* @__PURE__ */ new Date(), we = new Date(WA.getFullYear() - 2, 0, 1), _e = new Date(WA.getFullYear() + 2, 11, 31);
        return { startDate: we, endDate: _e };
      }
      const { minDate: xA, maxDate: dA } = vA, zA = new Date(xA.getFullYear() - 2, 0, 1), ne = new Date(dA.getFullYear() + 2, 11, 31);
      return { startDate: zA, endDate: ne };
    }, D = IA(!1), v = IA(null), E = IA(null), P = IA(!1), V = IA(!1), J = IA(!1), Y = IA(0), W = IA(!1);
    let O = null;
    const q = IA(0), lA = IA(0), I = IA(!0), Q = IA(!0), k = IA(0);
    let U = null;
    const R = IA(/* @__PURE__ */ new Map()), X = () => {
      const vA = /* @__PURE__ */ new Map();
      w.value.forEach((xA) => {
        if (xA.type === "milestone-group" && xA.children)
          xA.children.forEach((dA) => {
            const zA = new Date(dA.startDate || "");
            if (!isNaN(zA.getTime())) {
              const WA = Math.floor(
                (zA.getTime() - h.value.startDate.getTime()) / 864e5
              ) * 30 + 30 / 2 - 12, we = WA - 12, _e = WA + 12, me = q.value, Te = q.value + lA.value;
              let Ke = !1, Cr = "none";
              _e <= me + 12 ? (Ke = !0, Cr = "left") : we >= Te - 12 && (Ke = !0, Cr = "right"), vA.set(dA.id, {
                left: WA,
                originalLeft: WA,
                // 保存原始位置
                isSticky: Ke,
                stickyPosition: Cr
              });
            }
          });
        else if (xA.type === "milestone") {
          const dA = new Date(xA.startDate || "");
          if (!isNaN(dA.getTime())) {
            const ne = Math.floor(
              (dA.getTime() - h.value.startDate.getTime()) / 864e5
            ) * 30 + 30 / 2 - 12, WA = ne - 12, we = ne + 12, _e = q.value, me = q.value + lA.value;
            let Te = !1, Ke = "none";
            we <= _e + 12 ? (Te = !0, Ke = "left") : WA >= me - 12 && (Te = !0, Ke = "right"), vA.set(xA.id, {
              left: ne,
              originalLeft: ne,
              // 保存原始位置
              isSticky: Te,
              stickyPosition: Ke
            });
          }
        }
      }), R.value = vA;
    }, AA = (vA) => {
      const xA = [];
      return R.value.forEach((dA, zA) => {
        zA !== vA && xA.push({
          id: zA,
          left: dA.left,
          originalLeft: dA.originalLeft,
          // 使用保存的原始位置
          isSticky: dA.isSticky,
          stickyPosition: dA.stickyPosition,
          priority: dA.originalLeft
          // 使用原始位置作为优先级
        });
      }), xA;
    }, z = () => {
      P.value = !0;
    }, aA = () => {
      P.value = !1, I.value = !0, setTimeout(() => {
        I.value = !1;
      }, 300);
    }, rA = () => {
      I.value = !0, setTimeout(() => {
        I.value = !1;
      }, 300);
    }, QA = (vA) => {
      P.value || (E.value = vA, window.dispatchEvent(
        new CustomEvent("timeline-task-hover", {
          detail: vA
        })
      ));
    }, b = pe(() => {
      const dA = w.value.length * 51;
      return Math.max(dA, 400, k.value);
    }), T = (vA) => {
      E.value = vA.detail;
    }, _ = (vA) => {
      const xA = vA.detail;
      PA(xA);
    }, j = () => {
      cA.value = YA();
    }, $ = (vA) => {
      v.value = vA, D.value = !0;
    }, uA = () => {
      D.value = !1, v.value = null;
    }, hA = (vA, xA) => {
      window.dispatchEvent(
        new CustomEvent("milestone-icon-changed", {
          detail: { milestoneId: vA, icon: xA }
        })
      );
    }, mA = (vA) => {
      r.onMilestoneSave && typeof r.onMilestoneSave == "function" && r.onMilestoneSave(vA), uA(), window.dispatchEvent(
        new CustomEvent("milestone-data-updated", {
          detail: { milestone: vA }
        })
      );
    }, jA = (vA) => {
      uA(), window.dispatchEvent(
        new CustomEvent("milestone-deleted", {
          detail: { milestoneId: vA }
        })
      ), window.dispatchEvent(
        new CustomEvent("milestone-data-changed", {
          detail: { milestoneId: vA }
        })
      );
    }, VA = (vA) => {
      r.onMilestoneSave && typeof r.onMilestoneSave == "function" && r.onMilestoneSave(vA), window.dispatchEvent(
        new CustomEvent("milestone-data-updated", {
          detail: { milestone: vA }
        })
      );
    }, YA = () => g.value === Xe.WEEK ? UA() : g.value === Xe.MONTH ? nr() : nA(), nA = () => {
      const vA = [], xA = new Date(h.value.startDate);
      for (; xA <= h.value.endDate; ) {
        const dA = xA.getFullYear(), zA = xA.getMonth() + 1, ne = [], WA = new Date(dA, zA, 0).getDate();
        for (let we = 1; we <= WA; we++) {
          const _e = new Date(dA, zA - 1, we), me = _e.getDay(), Te = me === 0 || me === 6;
          ne.push({
            day: we,
            date: _e,
            label: String(we).padStart(2, "0"),
            isToday: DA(_e),
            isWeekend: Te
          });
        }
        vA.push({
          year: dA,
          month: zA,
          yearMonthLabel: s(dA, zA),
          startDate: new Date(xA),
          endDate: new Date(dA, zA, 0),
          days: ne
        }), xA.setMonth(xA.getMonth() + 1);
      }
      return vA;
    }, UA = () => {
      const vA = [], xA = new Date(h.value.startDate), dA = new Date(h.value.endDate), zA = new Date(xA), ne = zA.getDay() || 7;
      zA.setDate(zA.getDate() - (ne - 1));
      const WA = new Date(zA);
      for (; WA <= dA; ) {
        const me = new Date(WA);
        me.setDate(me.getDate() + 6), (WA >= xA || me >= xA) && vA.push({
          weekStart: new Date(WA),
          weekEnd: new Date(me),
          label: `${WA.getDate()}`,
          isToday: G(WA, me),
          subDays: yA(WA),
          // 根据周的第一天所在月份归属
          belongsToYear: WA.getFullYear(),
          belongsToMonth: WA.getMonth() + 1
        }), WA.setDate(WA.getDate() + 7);
      }
      const we = /* @__PURE__ */ new Map();
      return vA.forEach((me) => {
        const Te = `${me.belongsToYear}-${me.belongsToMonth}`;
        we.has(Te) || we.set(Te, {
          year: me.belongsToYear,
          month: me.belongsToMonth,
          yearMonthLabel: s(me.belongsToYear, me.belongsToMonth),
          startDate: new Date(me.belongsToYear, me.belongsToMonth - 1, 1),
          endDate: new Date(me.belongsToYear, me.belongsToMonth, 0),
          weeks: [],
          isWeekView: !0
        }), we.get(Te).weeks.push(me);
      }), Array.from(we.values()).sort((me, Te) => me.year !== Te.year ? me.year - Te.year : me.month - Te.month);
    }, yA = (vA) => {
      const xA = [];
      for (let dA = 0; dA < 7; dA++) {
        const zA = new Date(vA);
        zA.setDate(zA.getDate() + dA), xA.push({
          date: new Date(zA),
          dayOfWeek: zA.getDay()
        });
      }
      return xA;
    }, G = (vA, xA) => {
      const dA = /* @__PURE__ */ new Date();
      return dA.setHours(0, 0, 0, 0), dA >= vA && dA <= xA;
    }, CA = (vA) => {
      if (g.value = vA, vA === Xe.MONTH) {
        const xA = F();
        HA = !0, h.value = {
          ...h.value,
          startDate: xA.startDate,
          endDate: xA.endDate
        }, HA = !1;
      }
      cA.value = YA(), pt(() => {
        n("timeline-scale-changed", vA), window.dispatchEvent(new CustomEvent("timeline-scale-updated")), setTimeout(() => {
          window.dispatchEvent(new CustomEvent("timeline-force-recalculate")), setTimeout(() => {
            OA();
          }, 100);
        }, 50);
      });
    }, DA = (vA) => {
      const xA = /* @__PURE__ */ new Date();
      return vA.getDate() === xA.getDate() && vA.getMonth() === xA.getMonth() && vA.getFullYear() === xA.getFullYear();
    }, cA = IA(YA());
    let HA = !1;
    Je(
      () => [h.value.startDate, h.value.endDate],
      () => {
        HA || (cA.value = YA());
      }
    );
    let XA = !1;
    Je(
      () => [cA.value, h.value.startDate, h.value.endDate],
      () => {
        XA || pt(() => {
          OA(), XA = !0;
        });
      },
      { deep: !0 }
    );
    const OA = (vA = 0) => {
      I.value = !0, Q.value = !0;
      const xA = /* @__PURE__ */ new Date(), dA = h.value.startDate, zA = new Date(xA.getFullYear(), xA.getMonth(), xA.getDate()), ne = new Date(
        dA.getFullYear(),
        dA.getMonth(),
        dA.getDate()
      ), WA = zA.getTime() - ne.getTime(), _e = Math.floor(WA / (1e3 * 60 * 60 * 24)) * p.value, me = document.querySelector(".timeline"), Te = me.clientWidth;
      if (Te === 0 && vA < 10) {
        setTimeout(() => OA(vA + 1), 60);
        return;
      }
      const Ke = _e - Te / 2 + 15;
      typeof me.scrollTo == "function" ? me.scrollTo({ left: Math.max(0, Ke), behavior: "smooth" }) : me.scrollLeft = Math.max(0, Ke), setTimeout(() => {
        Q.value = !1, setTimeout(() => {
          I.value = !1;
        }, 300);
      }, 1500);
    }, ZA = () => {
      if (w.value.length === 0) {
        sA();
        return;
      }
      const vA = w.value.map((Ke) => Ke.startDate).filter((Ke) => !!Ke).map((Ke) => new Date(Ke));
      if (vA.length === 0) {
        sA();
        return;
      }
      const xA = new Date(Math.min(...vA.map((Ke) => Ke.getTime()))), dA = xA.getFullYear(), zA = xA.getMonth(), ne = xA.getDate();
      let WA = 0;
      for (let Ke = 0; Ke < zA; Ke++)
        WA += new Date(dA, Ke + 1, 0).getDate();
      WA += ne;
      const we = document.querySelector(".gantt-panel-right"), _e = we == null ? void 0 : we.clientWidth, me = (WA - 1) * 30 - (_e ? _e / 2 : 200), Te = document.querySelector(".timeline");
      Te && (Te.scrollLeft = Math.max(0, me));
    }, sA = () => {
      const vA = /* @__PURE__ */ new Date(), xA = h.value.startDate, dA = new Date(vA.getFullYear(), vA.getMonth(), vA.getDate()), zA = new Date(
        xA.getFullYear(),
        xA.getMonth(),
        xA.getDate()
      ), ne = dA.getTime() - zA.getTime(), WA = Math.floor(ne / (1e3 * 60 * 60 * 24));
      if (WA < 0 || dA > h.value.endDate)
        return;
      const we = WA * 30, _e = document.querySelector(".timeline");
      if (!_e) return;
      const me = _e.clientWidth, Te = we - me / 2 + 15;
      _e.scrollTo({
        left: Math.max(0, Te),
        behavior: "smooth"
      }), setTimeout(() => {
        document.querySelectorAll(".day-column.today").forEach((Cr) => {
          Cr.classList.add("today-highlight"), setTimeout(() => {
            Cr.classList.remove("today-highlight");
          }, 2e3);
        });
      }, 500);
    }, bA = (vA) => {
      window.dispatchEvent(
        new CustomEvent("task-updated", {
          detail: vA
        })
      );
    }, PA = (vA) => {
      n("edit-task", vA);
    }, te = IA({}), he = IA(null), re = IA(0), ce = IA(0);
    function RA() {
      he.value && (re.value = he.value.offsetWidth, ce.value = b.value);
    }
    function Pe(vA) {
      if (!he.value) return;
      const xA = he.value.getBoundingClientRect();
      te.value[vA.id] = {
        left: vA.left - xA.left,
        top: vA.top - xA.top,
        width: vA.width,
        height: vA.height
      }, RA();
    }
    const Ce = (vA) => {
      window.dispatchEvent(new CustomEvent("taskbar-drag-end", { detail: vA }));
    }, tt = (vA) => {
      window.dispatchEvent(new CustomEvent("taskbar-resize-end", { detail: vA }));
    }, Ue = (vA) => {
      window.dispatchEvent(
        new CustomEvent("context-menu", {
          detail: vA
        })
      );
    }, ke = (vA) => {
      if (LA.value) {
        I.value = !0;
        const xA = LA.value.scrollWidth - LA.value.clientWidth, dA = Math.max(0, Math.min(vA, xA));
        LA.value.scrollTo({
          left: dA,
          behavior: "smooth"
        }), setTimeout(() => {
          I.value = !1;
        }, 1e3);
      }
    }, mt = (vA) => {
      window.dispatchEvent(new CustomEvent("milestone-drag-end", { detail: vA }));
    }, Se = pe(() => {
      const vA = [], xA = new Set(w.value.map((dA) => dA.id));
      for (const dA of w.value)
        if (dA.predecessor && te.value[dA.id]) {
          const zA = Ed(dA.predecessor);
          for (const ne of zA)
            if (te.value[ne] && xA.has(ne)) {
              const WA = te.value[ne], we = te.value[dA.id], _e = WA.left + WA.width, me = WA.top + WA.height / 2, Te = we.left, Ke = we.top + we.height / 2, Cr = _e + 40, vi = me, is = Te - 40, Ls = `M${_e},${me} C${Cr},${vi} ${is},${Ke} ${Te},${Ke}`;
              vA.push({ from: ne, to: dA.id, path: Ls });
            }
        }
      return vA;
    });
    Sr(() => {
      pt(() => {
        setTimeout(() => {
          OA();
        }, 60);
      }), window.addEventListener("task-row-double-click", _), window.addEventListener("task-list-hover", T), window.addEventListener(
        "task-list-vertical-scroll",
        xt
      ), window.addEventListener("locale-changed", j), window.addEventListener("splitter-drag-start", z), window.addEventListener("splitter-drag-end", aA), window.addEventListener(
        "timeline-container-resized",
        rA
      ), window.addEventListener("milestone-click-locate", Xt), window.addEventListener("drag-boundary-check", ze), pt(() => {
        const vA = document.querySelector(".timeline-body"), xA = document.querySelector(".timeline");
        if (vA && (k.value = vA.clientHeight, U = new ResizeObserver((dA) => {
          for (const zA of dA)
            k.value = zA.contentRect.height;
        }), U.observe(vA)), xA) {
          q.value = xA.scrollLeft, lA.value = xA.clientWidth;
          const dA = new ResizeObserver((zA) => {
            for (const ne of zA) {
              const WA = ne.contentRect.width;
              Math.abs(WA - lA.value) > 1 && (lA.value = WA, I.value = !0, setTimeout(() => {
                I.value = !1;
              }, 300));
            }
          });
          dA.observe(xA), U || (U = dA);
        }
      }), setTimeout(() => {
        OA(), RA();
      }, 200), window.addEventListener("resize", RA);
    });
    const xt = (vA) => {
      const { scrollTop: xA } = vA.detail, dA = document.querySelector(".timeline-body");
      dA && dA.scrollTop !== xA && (dA.scrollTop = xA);
    }, gA = (vA) => {
      const xA = vA.target;
      if (!xA) return;
      const dA = xA.scrollTop;
      dA >= 0 && window.dispatchEvent(
        new CustomEvent("timeline-vertical-scroll", {
          detail: { scrollTop: dA }
        })
      );
    };
    Je(
      () => w.value.length,
      () => {
        pt(() => {
          RA();
        });
      },
      { immediate: !0 }
    );
    const _A = IA(!1), Ae = IA(0), JA = IA(0), LA = IA(null), ae = IA(!1);
    let He = null;
    const ve = (vA) => {
      var ne;
      const xA = vA.target, dA = xA.closest(".timeline-header"), zA = xA.closest(".timeline-body");
      !dA && !zA || zA && [
        ".task-bar",
        ".milestone",
        "button",
        "input",
        "select",
        "textarea",
        ".task-bar-content",
        ".progress-bar",
        ".task-name",
        ".task-controls"
      ].some((_e) => xA.closest(_e)) || (_A.value = !0, Ae.value = vA.pageX, JA.value = ((ne = LA.value) == null ? void 0 : ne.scrollLeft) || 0, LA.value && (LA.value.style.cursor = "grabbing", LA.value.style.userSelect = "none"), vA.preventDefault(), document.addEventListener("mousemove", $A), document.addEventListener("mouseup", ee));
    }, $A = (vA) => {
      if (!_A.value || !LA.value) return;
      vA.preventDefault();
      const dA = (vA.pageX - Ae.value) * 1.5;
      LA.value.scrollLeft = JA.value - dA;
    }, ee = () => {
      _A.value = !1, LA.value && (LA.value.style.cursor = "grab", LA.value.style.userSelect = "auto"), document.removeEventListener("mousemove", $A), document.removeEventListener("mouseup", ee);
    }, qA = (vA) => {
      const xA = vA.target;
      if (!xA) return;
      const dA = xA.scrollLeft, zA = xA.scrollWidth, ne = xA.clientWidth, WA = zA - ne;
      q.value = dA, lA.value = ne, X(), Y.value = WA > 0 ? dA / WA : 0, V.value = dA > 20, J.value = dA < WA - 20, W.value = !0, xA && "classList" in xA && typeof xA.classList.add == "function" && xA.classList.add("scrolling"), O && clearTimeout(O), O = setTimeout(() => {
        W.value = !1, xA && "classList" in xA && typeof xA.classList.remove == "function" && xA.classList.remove("scrolling");
      }, 500);
    }, Ne = (vA) => {
      if (ae.value || !LA.value) return;
      ae.value = !0;
      const xA = () => {
        if (!LA.value || !ae.value) return;
        const dA = LA.value.scrollLeft, zA = LA.value.scrollWidth - LA.value.clientWidth;
        let ne;
        if (vA === "left" ? ne = Math.max(0, dA - af) : ne = Math.min(zA, dA + af), ne === dA) {
          it();
          return;
        }
        LA.value.scrollLeft = ne, window.dispatchEvent(
          new CustomEvent("timeline-auto-scroll", {
            detail: { scrollDelta: ne - dA }
          })
        ), He = window.setTimeout(xA, 16);
      };
      xA();
    }, it = () => {
      ae.value = !1, He && (clearTimeout(He), He = null);
    }, ze = (vA) => {
      const { mouseX: xA, isDragging: dA } = vA.detail;
      if (!dA || !LA.value) {
        it();
        return;
      }
      const zA = LA.value.getBoundingClientRect(), ne = xA - zA.left;
      ne <= sf && LA.value.scrollLeft > 0 ? Ne("left") : ne >= zA.width - sf && LA.value.scrollLeft < LA.value.scrollWidth - LA.value.clientWidth ? Ne("right") : it();
    };
    wr(() => {
      it(), window.removeEventListener("task-row-double-click", _), window.removeEventListener("task-list-hover", T), window.removeEventListener(
        "task-list-vertical-scroll",
        xt
      ), window.removeEventListener("locale-changed", j), window.removeEventListener("splitter-drag-start", z), window.removeEventListener("splitter-drag-end", aA), window.removeEventListener(
        "timeline-container-resized",
        rA
      ), window.removeEventListener("milestone-click-locate", Xt), window.removeEventListener("drag-boundary-check", ze), U && (U.disconnect(), U = null), window.removeEventListener("resize", RA), document.removeEventListener("mousemove", $A), document.removeEventListener("mouseup", ee);
    });
    const qe = (vA, xA) => {
      n("delete", vA, xA);
    }, rt = pe(() => {
      if (g.value !== Xe.MONTH)
        return {};
      const vA = {};
      return cA.value.forEach((xA) => {
        vA[xA.year] || (vA[xA.year] = []), vA[xA.year].push(xA);
      }), vA;
    });
    e({
      // 基础滚动功能
      scrollToTasks: ZA,
      scrollToToday: sA,
      scrollToTodayCenter: OA,
      // 时间线配置
      timelineConfig: h,
      // 时间刻度更新
      updateTimeScale: CA
    });
    const _t = (vA) => {
      n("start-timer", vA);
    }, Gr = (vA) => {
      n("stop-timer", vA);
    }, lr = (vA) => {
      const xA = vA.startDate || vA.endDate || "";
      return {
        ...vA,
        type: "milestone",
        startDate: xA,
        endDate: vA.startDate || vA.endDate
      };
    };
    Je(w, X, { immediate: !0, deep: !0 }), Je([q, lA], X), Je(
      () => w.value,
      (vA) => {
        const xA = new Set(vA.map((dA) => dA.id));
        Object.keys(te.value).forEach((dA) => {
          const zA = parseInt(dA);
          xA.has(zA) || delete te.value[zA];
        });
      },
      { deep: !0 }
    );
    const Xt = (vA) => {
      const { scrollLeft: xA, smooth: dA } = vA.detail, zA = document.querySelector(".timeline"), ne = document.querySelector(".timeline-body");
      let WA = null;
      if (zA && zA.scrollWidth > zA.clientWidth ? WA = zA : ne && ne.scrollWidth > ne.clientWidth && (WA = ne), WA) {
        const we = WA.scrollWidth - WA.clientWidth, _e = Math.min(Math.max(0, xA), we);
        dA ? WA.scrollTo({
          left: _e,
          behavior: "smooth"
        }) : WA.scrollLeft = _e;
      }
    }, nr = () => {
      let vA, xA;
      if (g.value === Xe.MONTH) {
        const WA = F();
        vA = WA.startDate, xA = WA.endDate;
      } else
        vA = new Date(h.value.startDate), xA = new Date(h.value.endDate);
      const dA = {}, zA = new Date(vA);
      for (zA.setDate(1); zA <= xA; ) {
        const WA = zA.getFullYear(), we = zA.getMonth() + 1, me = new Date(WA, we, 0).getDate(), Te = /* @__PURE__ */ new Date(), Ke = WA === Te.getFullYear() && we === Te.getMonth() + 1;
        dA[WA] || (dA[WA] = {
          year: WA,
          yearLabel: `${WA}年`,
          months: []
        }), dA[WA].months.push({
          year: WA,
          month: we,
          monthLabel: a(we),
          startDate: new Date(WA, we - 1, 1),
          endDate: new Date(WA, we, 0),
          isToday: Ke,
          dayCount: me
        }), zA.setMonth(zA.getMonth() + 1);
      }
      const ne = [];
      for (const WA of Object.values(dA))
        for (const we of WA.months) {
          const _e = [];
          for (let me = 1; me <= we.dayCount; me++) {
            const Te = new Date(we.year, we.month - 1, me);
            _e.push({
              day: me,
              date: new Date(Te),
              dayOfWeek: Te.getDay(),
              isToday: DA(Te),
              isWeekend: Te.getDay() === 0 || Te.getDay() === 6
            });
          }
          ne.push({
            year: we.year,
            month: we.month,
            yearMonthLabel: s(we.year, we.month),
            startDate: we.startDate,
            endDate: we.endDate,
            isMonthView: !0,
            monthData: {
              monthLabel: we.monthLabel,
              isToday: we.isToday,
              dayCount: we.dayCount
            },
            // 添加每一天的子列数据
            subDays: _e,
            // 为了兼容性,保留days数组,映射subDays的数据
            days: _e.map((me) => ({
              day: me.day,
              date: me.date,
              label: String(me.day).padStart(2, "0"),
              isToday: me.isToday,
              isWeekend: me.isWeekend
            }))
          });
        }
      return ne;
    }, Vt = (vA) => {
      n("add-predecessor", vA);
    }, cr = (vA) => {
      n("add-successor", vA);
    };
    return (vA, xA) => (wA(), FA("div", {
      ref_key: "timelineContainer",
      ref: LA,
      class: "timeline",
      onMousedown: ve,
      onScroll: qA
    }, [
      N("div", B1, [
        g.value === de(Xe).MONTH ? (wA(), FA(Ve, { key: 0 }, [
          N("div", w1, [
            (wA(!0), FA(Ve, null, ht(rt.value, (dA, zA) => (wA(), FA("div", {
              key: `year-${zA}`,
              class: "timeline-year",
              style: { width: "719px" }
            }, [
              N("div", v1, kA(zA) + "年", 1)
            ]))), 128))
          ]),
          N("div", m1, [
            (wA(!0), FA(Ve, null, ht(cA.value, (dA) => {
              var zA, ne;
              return wA(), FA("div", {
                key: `month-${dA.year}-${dA.month}`,
                class: Me(["timeline-month-item", { today: (zA = dA.monthData) == null ? void 0 : zA.isToday }]),
                style: { width: "59px" }
              }, [
                N("div", y1, kA((ne = dA.monthData) == null ? void 0 : ne.monthLabel), 1)
              ], 2);
            }), 128))
          ])
        ], 64)) : (wA(), FA(Ve, { key: 1 }, [
          N("div", C1, [
            (wA(!0), FA(Ve, null, ht(cA.value, (dA) => (wA(), FA("div", {
              key: `year-month-${dA.year}-${dA.month}`,
              class: "timeline-month",
              style: At({
                width: dA.isWeekView ? `${(dA.weeks || []).length * 60}px` : `${(dA.days || []).length * 30}px`
              })
            }, [
              N("div", b1, kA(dA.yearMonthLabel), 1)
            ], 4))), 128))
          ]),
          N("div", F1, [
            (wA(!0), FA(Ve, null, ht(cA.value, (dA) => (wA(), FA(Ve, {
              key: `timeline-${dA.year}-${dA.month}`
            }, [
              dA.isWeekView && dA.weeks ? (wA(), FA("div", {
                key: 0,
                class: "timeline-month-weeks",
                style: At({ width: `${(dA.weeks || []).length * 60}px` })
              }, [
                (wA(!0), FA(Ve, null, ht(dA.weeks || [], (zA) => (wA(), FA("div", {
                  key: `week-${dA.year}-${dA.month}-${zA.label}`,
                  class: Me(["timeline-week", {
                    today: zA.isToday
                  }])
                }, [
                  N("div", Q1, kA(zA.label), 1),
                  N("div", U1, [
                    (wA(!0), FA(Ve, null, ht(zA.subDays || [], (ne, WA) => (wA(), FA("div", {
                      key: `subday-${WA}`,
                      class: "week-sub-day"
                    }))), 128))
                  ])
                ], 2))), 128))
              ], 4)) : (wA(), FA("div", {
                key: 1,
                class: "timeline-month-days",
                style: At({ width: `${dA.days.length * 30}px` })
              }, [
                (wA(!0), FA(Ve, null, ht(dA.days, (zA) => (wA(), FA("div", {
                  key: `day-${dA.year}-${dA.month}-${zA.day}`,
                  class: Me(["timeline-day", {
                    today: zA.isToday,
                    weekend: zA.isWeekend && !zA.isToday
                  }])
                }, [
                  N("div", L1, kA(zA.label), 1)
                ], 2))), 128))
              ], 4))
            ], 64))), 128))
          ])
        ], 64))
      ]),
      N("div", {
        class: "timeline-body",
        onScroll: gA
      }, [
        N("div", {
          ref_key: "bodyContentRef",
          ref: he,
          class: "timeline-body-content"
        }, [
          (wA(), FA("svg", {
            class: "gantt-links",
            width: re.value,
            height: ce.value,
            style: { position: "absolute", left: "0", top: "0", "z-index": "25", "pointer-events": "none" }
          }, [
            xA[2] || (xA[2] = N("defs", null, [
              N("marker", {
                id: "arrow",
                markerWidth: "4",
                markerHeight: "4",
                refX: "4",
                refY: "2",
                orient: "auto",
                markerUnits: "strokeWidth"
              }, [
                N("polygon", {
                  points: "0,0 4,2 0,4",
                  fill: "#c0c4cc"
                })
              ])
            ], -1)),
            N("g", null, [
              (wA(!0), FA(Ve, null, ht(Se.value, (dA) => (wA(), FA("path", {
                key: dA.from + "-" + dA.to,
                d: dA.path,
                stroke: "#c0c4cc",
                "stroke-width": "2",
                "stroke-dasharray": "6,4",
                fill: "none",
                "marker-end": "url(#arrow)"
              }, null, 8, x1))), 128))
            ])
          ], 8, E1)),
          N("div", {
            class: "day-columns",
            style: At({ height: `${b.value}px` })
          }, [
            (wA(!0), FA(Ve, null, ht(cA.value, (dA) => {
              var zA;
              return wA(), FA(Ve, {
                key: `day-col-${dA.year}-${dA.month}`
              }, [
                dA.isMonthView ? (wA(), FA("div", {
                  key: 0,
                  class: Me(["month-column", { today: (zA = dA.monthData) == null ? void 0 : zA.isToday }]),
                  style: At({ width: "59px", height: `${b.value}px` })
                }, null, 6)) : dA.isWeekView && dA.weeks ? (wA(), FA("div", {
                  key: 1,
                  class: "month-week-columns",
                  style: At({
                    width: `${(dA.weeks || []).length * 60}px`,
                    height: `${b.value}px`
                  })
                }, [
                  (wA(!0), FA(Ve, null, ht(dA.weeks || [], (ne) => (wA(), FA("div", {
                    key: `week-col-${dA.year}-${dA.month}-${ne.label}`,
                    class: Me(["week-column", {
                      today: ne.isToday
                    }]),
                    style: At({ height: `${b.value}px`, width: "60px" })
                  }, [
                    (wA(!0), FA(Ve, null, ht(ne.subDays || [], (WA, we) => (wA(), FA("div", {
                      key: `subday-col-${we}`,
                      class: Me(["sub-day-column", {
                        weekend: WA.dayOfWeek === 0 || WA.dayOfWeek === 6,
                        today: DA(WA.date)
                      }]),
                      style: At({ height: `${b.value}px`, width: "8.57px" })
                    }, null, 6))), 128))
                  ], 6))), 128))
                ], 4)) : (wA(), FA("div", {
                  key: 2,
                  class: "month-day-columns",
                  style: At({ width: `${dA.days.length * 30}px`, height: `${b.value}px` })
                }, [
                  (wA(!0), FA(Ve, null, ht(dA.days, (ne) => (wA(), FA("div", {
                    key: `day-col-${dA.year}-${dA.month}-${ne.day}`,
                    class: Me(["day-column", {
                      weekend: ne.isWeekend,
                      today: ne.isToday
                    }]),
                    style: At({ height: `${b.value}px` })
                  }, null, 6))), 128))
                ], 4))
              ], 64);
            }), 128))
          ], 4),
          N("div", {
            class: "task-bar-container",
            style: At({ height: `${b.value}px` })
          }, [
            N("div", {
              class: "task-rows",
              style: At({ height: `${b.value}px` })
            }, [
              (wA(!0), FA(Ve, null, ht(w.value, (dA, zA) => (wA(), FA("div", {
                key: dA.id,
                class: Me(["task-row", { "task-row-hovered": E.value === dA.id }]),
                style: At({ top: `${zA * 51}px` }),
                onMouseenter: (ne) => QA(dA.id),
                onMouseleave: xA[0] || (xA[0] = (ne) => QA(null))
              }, [
                dA.type === "milestone-group" && dA.children ? (wA(!0), FA(Ve, { key: 0 }, ht(dA.children, (ne) => (wA(), Dr(nf, {
                  key: ne.id,
                  date: ne.startDate || "",
                  "row-height": 50,
                  "day-width": p.value,
                  "start-date": h.value.startDate,
                  name: ne.name,
                  milestone: lr(ne),
                  "scroll-left": q.value,
                  "container-width": lA.value,
                  "milestone-id": ne.id,
                  "other-milestones": AA(ne.id),
                  "timeline-data": cA.value,
                  "current-time-scale": g.value,
                  onMilestoneDoubleClick: $,
                  "onUpdate:milestone": VA,
                  onDragEnd: mt
                }, null, 8, ["date", "day-width", "start-date", "name", "milestone", "scroll-left", "container-width", "milestone-id", "other-milestones", "timeline-data", "current-time-scale"]))), 128)) : dA.type === "milestone" ? (wA(), Dr(nf, {
                  key: dA.id,
                  date: dA.startDate || "",
                  "row-height": 50,
                  "day-width": p.value,
                  "start-date": h.value.startDate,
                  name: dA.name,
                  milestone: lr(dA),
                  "scroll-left": q.value,
                  "container-width": lA.value,
                  "milestone-id": dA.id,
                  "other-milestones": AA(dA.id),
                  "timeline-data": cA.value,
                  "current-time-scale": g.value,
                  onMilestoneDoubleClick: $,
                  "onUpdate:milestone": VA,
                  onDragEnd: mt
                }, null, 8, ["date", "day-width", "start-date", "name", "milestone", "scroll-left", "container-width", "milestone-id", "other-milestones", "timeline-data", "current-time-scale"])) : dA.type !== "milestone-group" && dA.type !== "milestone" ? (wA(), Dr(n0, {
                  key: 2,
                  task: dA,
                  "row-height": 50,
                  "day-width": p.value,
                  "start-date": h.value.startDate,
                  "is-parent": dA.isParent,
                  "on-double-click": r.onTaskDoubleClick,
                  "scroll-left": q.value,
                  "container-width": lA.value,
                  "hide-bubbles": I.value,
                  "timeline-data": cA.value,
                  "current-time-scale": g.value,
                  "onUpdate:task": bA,
                  onBarMounted: Pe,
                  onDblclick: (ne) => PA(dA),
                  onDragEnd: Ce,
                  onResizeEnd: tt,
                  onScrollToPosition: ke,
                  onContextMenu: Ue,
                  onStartTimer: _t,
                  onStopTimer: Gr,
                  onAddPredecessor: Vt,
                  onAddSuccessor: cr,
                  onDelete: qe
                }, null, 8, ["task", "day-width", "start-date", "is-parent", "on-double-click", "scroll-left", "container-width", "hide-bubbles", "timeline-data", "current-time-scale", "onDblclick"])) : Be("", !0)
              ], 46, I1))), 128))
            ], 4)
          ], 4)
        ], 512)
      ], 32),
      xr(p1, {
        visible: D.value,
        "onUpdate:visible": xA[1] || (xA[1] = (dA) => D.value = dA),
        milestone: v.value,
        onClose: uA,
        onSave: mA,
        onDelete: jA,
        onIconChanged: hA
      }, null, 8, ["visible", "milestone"])
    ], 544));
  }
}), D1 = /* @__PURE__ */ mr(S1, [["__scopeId", "data-v-87329887"]]), k1 = { class: "gantt-toolbar" }, H1 = { class: "toolbar-left" }, T1 = {
  key: 0,
  class: "btn-group add-btn-group"
}, N1 = ["title"], _1 = ["title"], M1 = {
  key: 1,
  class: "btn-group"
}, P1 = ["title"], O1 = ["title"], R1 = { class: "toolbar-right" }, K1 = {
  key: 0,
  class: "segmented-control time-scale-segmented"
}, V1 = { class: "segmented-track" }, G1 = ["title"], j1 = ["title"], q1 = ["title"], W1 = {
  key: 1,
  class: "language-dropdown"
}, X1 = ["title"], z1 = { class: "lang-text" }, Y1 = {
  key: 0,
  class: "language-menu"
}, J1 = ["onClick"], $1 = { class: "option-text" }, Z1 = {
  key: 0,
  class: "check-icon",
  viewBox: "0 0 24 24",
  fill: "none",
  stroke: "currentColor",
  "stroke-width": "2"
}, A2 = ["title"], e2 = ["title"], t2 = {
  key: 0,
  class: "btn-icon",
  viewBox: "0 0 24 24",
  fill: "none",
  stroke: "currentColor",
  "stroke-width": "2"
}, r2 = {
  key: 1,
  class: "btn-icon",
  viewBox: "0 0 24 24",
  fill: "none",
  stroke: "currentColor",
  "stroke-width": "2"
}, n2 = { class: "icon-fallback" }, s2 = ["title"], i2 = {
  key: 0,
  class: "btn-icon",
  viewBox: "0 0 24 24",
  fill: "none",
  stroke: "currentColor",
  "stroke-width": "2"
}, a2 = {
  key: 1,
  class: "btn-icon",
  viewBox: "0 0 24 24",
  fill: "none",
  stroke: "currentColor",
  "stroke-width": "2"
}, o2 = { class: "icon-fallback" }, l2 = {
  key: 0,
  class: "confirm-dialog"
}, c2 = { class: "dialog-content" }, u2 = { class: "dialog-message" }, f2 = { class: "dialog-actions" }, sc = "gantt-theme", d2 = "gantt-locale", h2 = /* @__PURE__ */ vr({
  __name: "GanttToolbar",
  props: {
    config: { default: () => ({}) },
    onAddTask: { type: Function, default: void 0 },
    onAddMilestone: { type: Function, default: void 0 },
    onTodayLocate: { type: Function, default: void 0 },
    onExportCsv: { type: Function, default: void 0 },
    onExportPdf: { type: Function, default: void 0 },
    onLanguageChange: { type: Function, default: void 0 },
    onThemeChange: { type: Function, default: void 0 },
    onFullscreenChange: { type: Function, default: void 0 },
    onTimeScaleChange: { type: Function, default: void 0 },
    onSettingsConfirm: { type: Function, default: void 0 }
  },
  emits: ["add-task", "add-milestone", "today-locate", "export-csv", "export-pdf", "language-change", "theme-change", "fullscreen-change", "time-scale-change"],
  setup(t, { emit: e }) {
    const A = t, r = e, n = {
      zh: "zh-CN",
      en: "en-US"
    }, s = () => {
      if (typeof window < "u") {
        const rA = localStorage.getItem(sc);
        return rA !== null ? rA === "dark" : window.matchMedia && window.matchMedia("(prefers-color-scheme: dark)").matches;
      }
      return !1;
    }, { locale: a, setLocale: o, getTranslation: c } = In(), d = IA("zh"), h = IA(s()), g = IA(!1), w = IA(!1), p = IA(Xe.DAY), m = (rA) => c(rA), F = pe(() => m("language")), D = IA(!1), v = IA(null), E = IA(null), P = () => {
      A.onAddTask && typeof A.onAddTask == "function" ? A.onAddTask() : r("add-task");
    }, V = () => {
      A.onAddMilestone && typeof A.onAddMilestone == "function" ? A.onAddMilestone() : r("add-milestone");
    }, J = () => {
      A.onTodayLocate && typeof A.onTodayLocate == "function" ? A.onTodayLocate() : r("today-locate");
    }, Y = () => {
      A.onExportCsv && typeof A.onExportCsv == "function" ? A.onExportCsv() : r("export-csv");
    }, W = () => {
      A.onExportPdf && typeof A.onExportPdf == "function" ? A.onExportPdf() : r("export-pdf");
    }, O = () => {
      w.value = !w.value;
    }, q = (rA) => {
      d.value = rA, w.value = !1;
      const QA = n[d.value];
      o(QA), A.onLanguageChange && typeof A.onLanguageChange == "function" ? A.onLanguageChange(QA) : r("language-change", QA), E.value = QA, v.value = "language", D.value = !0;
    }, lA = async () => {
      if (!v.value || E.value === null) {
        U();
        return;
      }
      if (A.onSettingsConfirm && typeof A.onSettingsConfirm == "function")
        try {
          if (!await A.onSettingsConfirm(v.value, E.value)) {
            U();
            return;
          }
        } catch {
          U();
          return;
        }
      v.value === "theme" ? I() : v.value === "language" && Q(), U();
    }, I = () => {
      typeof window < "u" && typeof E.value == "boolean" && localStorage.setItem(sc, E.value ? "dark" : "light");
    }, Q = () => {
      typeof window < "u" && typeof E.value == "string" && localStorage.setItem(d2, E.value);
    }, k = () => {
      U();
    }, U = () => {
      D.value = !1, v.value = null, E.value = null;
    }, R = () => {
      const rA = !h.value;
      h.value = rA, document.documentElement.setAttribute("data-theme", rA ? "dark" : "light"), A.onThemeChange && typeof A.onThemeChange == "function" ? A.onThemeChange(rA) : r("theme-change", rA), E.value = rA, v.value = "theme", D.value = !0;
    }, X = () => {
      g.value = !g.value, window.dispatchEvent(
        new CustomEvent("fullscreen-toggle", {
          detail: g.value
        })
      ), A.onFullscreenChange && typeof A.onFullscreenChange == "function" ? A.onFullscreenChange(g.value) : r("fullscreen-change", g.value);
    }, AA = (rA) => {
      p.value = rA, A.onTimeScaleChange && typeof A.onTimeScaleChange == "function" ? A.onTimeScaleChange(rA) : r("time-scale-change", rA);
    }, z = () => ({
      transform: `translateX(${({
        [Xe.MONTH]: 0,
        [Xe.WEEK]: 1,
        [Xe.DAY]: 2
      }[p.value] || 0) * 100}%)`
    }), aA = (rA) => {
      !rA.target.closest(".language-dropdown") && w.value && (w.value = !1);
    };
    return Sr(() => {
      const rA = a.value;
      d.value = rA === "zh-CN" ? "zh" : "en", document.documentElement.setAttribute("data-theme", h.value ? "dark" : "light"), document.addEventListener("click", aA), window.matchMedia && typeof window < "u" && !localStorage.getItem(sc) && window.matchMedia("(prefers-color-scheme: dark)").addEventListener("change", (QA) => {
        h.value = QA.matches, document.documentElement.setAttribute("data-theme", QA.matches ? "dark" : "light");
      });
    }), wr(() => {
      document.removeEventListener("click", aA);
    }), (rA, QA) => (wA(), FA("div", k1, [
      N("div", H1, [
        rA.config.showAddTask !== !1 || rA.config.showAddMilestone !== !1 ? (wA(), FA("div", T1, [
          rA.config.showAddTask !== !1 ? (wA(), FA("button", {
            key: 0,
            class: "btn-group-item",
            title: m("addTask"),
            onClick: P
          }, [
            QA[3] || (QA[3] = N("svg", {
              class: "btn-icon",
              viewBox: "0 0 24 24",
              fill: "none",
              stroke: "currentColor",
              "stroke-width": "2"
            }, [
              N("line", {
                x1: "12",
                y1: "5",
                x2: "12",
                y2: "19"
              }),
              N("line", {
                x1: "5",
                y1: "12",
                x2: "19",
                y2: "12"
              })
            ], -1)),
            Tt(" " + kA(m("addTask")), 1)
          ], 8, N1)) : Be("", !0),
          rA.config.showAddMilestone !== !1 ? (wA(), FA("button", {
            key: 1,
            class: "btn-group-item",
            title: m("addMilestone"),
            onClick: V
          }, [
            QA[4] || (QA[4] = Yn('<svg class="btn-icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" data-v-cf46d00e><g transform="rotate(45 12 12)" data-v-cf46d00e><rect x="4" y="4" width="16" height="16" rx="4" ry="4" fill="none" stroke="currentColor" data-v-cf46d00e></rect></g><line x1="12" y1="8" x2="12" y2="16" data-v-cf46d00e></line><line x1="8" y1="12" x2="16" y2="12" data-v-cf46d00e></line></svg>', 1)),
            Tt(" " + kA(m("addMilestone")), 1)
          ], 8, _1)) : Be("", !0)
        ])) : Be("", !0),
        rA.config.showExportCsv !== !1 || rA.config.showExportPdf !== !1 ? (wA(), FA("div", M1, [
          rA.config.showExportCsv !== !1 ? (wA(), FA("button", {
            key: 0,
            class: "btn-group-item",
            title: m("exportCsv"),
            onClick: Y
          }, [
            QA[5] || (QA[5] = Yn('<svg class="btn-icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" data-v-cf46d00e><path d="M14 2H6a2 2 0 00-2 2v16a2 2 0 002 2h12a2 2 0 002-2V8z" data-v-cf46d00e></path><polyline points="14,2 14,8 20,8" data-v-cf46d00e></polyline><line x1="16" y1="13" x2="8" y2="13" data-v-cf46d00e></line><line x1="16" y1="17" x2="8" y2="17" data-v-cf46d00e></line><polyline points="10,9 9,9 8,9" data-v-cf46d00e></polyline></svg>', 1)),
            Tt(" " + kA(m("exportCsv")), 1)
          ], 8, P1)) : Be("", !0),
          rA.config.showExportPdf !== !1 ? (wA(), FA("button", {
            key: 1,
            class: "btn-group-item",
            title: m("exportPdf"),
            onClick: W
          }, [
            QA[6] || (QA[6] = Yn('<svg class="btn-icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" data-v-cf46d00e><path d="M14 2H6a2 2 0 00-2 2v16a2 2 0 002 2h12a2 2 0 002-2V8z" data-v-cf46d00e></path><polyline points="14,2 14,8 20,8" data-v-cf46d00e></polyline><line x1="16" y1="13" x2="8" y2="13" data-v-cf46d00e></line><line x1="16" y1="17" x2="8" y2="17" data-v-cf46d00e></line><line x1="12" y1="13" x2="12" y2="17" data-v-cf46d00e></line></svg>', 1)),
            Tt(" " + kA(m("exportPdf")), 1)
          ], 8, O1)) : Be("", !0)
        ])) : Be("", !0)
      ]),
      N("div", R1, [
        rA.config.showTimeScale !== !1 ? (wA(), FA("div", K1, [
          N("div", V1, [
            N("div", {
              class: "segmented-thumb",
              style: At(z())
            }, null, 4)
          ]),
          N("button", {
            class: Me(["segmented-item", { active: p.value === "month" }]),
            title: m("timeScaleTooltip"),
            onClick: QA[0] || (QA[0] = (b) => AA(de(Xe).MONTH))
          }, kA(m("timeScaleMonth")), 11, G1),
          N("button", {
            class: Me(["segmented-item", { active: p.value === "week" }]),
            title: m("timeScaleTooltip"),
            onClick: QA[1] || (QA[1] = (b) => AA(de(Xe).WEEK))
          }, kA(m("timeScaleWeek")), 11, j1),
          N("button", {
            class: Me(["segmented-item", { active: p.value === "day" }]),
            title: m("timeScaleTooltip"),
            onClick: QA[2] || (QA[2] = (b) => AA(de(Xe).DAY))
          }, kA(m("timeScaleDay")), 11, q1)
        ])) : Be("", !0),
        rA.config.showLanguage !== !1 ? (wA(), FA("div", W1, [
          N("button", {
            class: "toolbar-lang-btn",
            title: m("languageTooltip"),
            onClick: O
          }, [
            QA[7] || (QA[7] = N("svg", {
              class: "btn-icon",
              viewBox: "0 0 24 24",
              fill: "none",
              stroke: "currentColor",
              "stroke-width": "2"
            }, [
              N("circle", {
                cx: "12",
                cy: "12",
                r: "10"
              }),
              N("line", {
                x1: "2",
                y1: "12",
                x2: "22",
                y2: "12"
              }),
              N("path", { d: "M12 2a15.3 15.3 0 0 1 4 10 15.3 15.3 0 0 1-4 10 15.3 15.3 0 0 1-4-10 15.3 15.3 0 0 1 4-10z" })
            ], -1)),
            N("span", z1, kA(F.value), 1),
            QA[8] || (QA[8] = N("svg", {
              class: "dropdown-arrow",
              viewBox: "0 0 24 24",
              fill: "none",
              stroke: "currentColor",
              "stroke-width": "2"
            }, [
              N("polyline", { points: "6,9 12,15 18,9" })
            ], -1))
          ], 8, X1),
          w.value ? (wA(), FA("div", Y1, [
            (wA(), FA(Ve, null, ht(["zh", "en"], (b) => N("div", {
              key: b,
              class: Me(["language-option", { active: d.value === b }]),
              onClick: (T) => q(b)
            }, [
              N("span", $1, kA(b === "zh" ? "中文" : "English"), 1),
              d.value === b ? (wA(), FA("svg", Z1, QA[9] || (QA[9] = [
                N("polyline", { points: "20,6 9,17 4,12" }, null, -1)
              ]))) : Be("", !0)
            ], 10, J1)), 64))
          ])) : Be("", !0)
        ])) : Be("", !0),
        rA.config.showTodayLocate !== !1 ? (wA(), FA("button", {
          key: 2,
          class: "toolbar-icon-btn today-locate-btn",
          title: m("todayLocateTooltip"),
          onClick: J
        }, QA[10] || (QA[10] = [
          Yn('<svg class="btn-icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" data-v-cf46d00e><rect x="3" y="4" width="18" height="18" rx="2" ry="2" data-v-cf46d00e></rect><line x1="16" y1="2" x2="16" y2="6" data-v-cf46d00e></line><line x1="8" y1="2" x2="8" y2="6" data-v-cf46d00e></line><line x1="3" y1="10" x2="21" y2="10" data-v-cf46d00e></line><circle cx="12" cy="16" r="1" data-v-cf46d00e></circle></svg>', 1)
        ]), 8, A2)) : Be("", !0),
        rA.config.showTheme !== !1 ? (wA(), FA("button", {
          key: 3,
          class: "toolbar-icon-btn",
          title: m(h.value ? "lightMode" : "darkMode"),
          onClick: R
        }, [
          h.value ? (wA(), FA("svg", t2, QA[11] || (QA[11] = [
            Yn('<circle cx="12" cy="12" r="5" data-v-cf46d00e></circle><line x1="12" y1="1" x2="12" y2="3" data-v-cf46d00e></line><line x1="12" y1="21" x2="12" y2="23" data-v-cf46d00e></line><line x1="4.22" y1="4.22" x2="5.64" y2="5.64" data-v-cf46d00e></line><line x1="18.36" y1="18.36" x2="19.78" y2="19.78" data-v-cf46d00e></line><line x1="1" y1="12" x2="3" y2="12" data-v-cf46d00e></line><line x1="21" y1="12" x2="23" y2="12" data-v-cf46d00e></line><line x1="4.22" y1="19.78" x2="5.64" y2="18.36" data-v-cf46d00e></line><line x1="18.36" y1="5.64" x2="19.78" y2="4.22" data-v-cf46d00e></line>', 9)
          ]))) : (wA(), FA("svg", r2, QA[12] || (QA[12] = [
            N("path", { d: "M21 12.79A9 9 0 1 1 11.21 3 7 7 0 0 0 21 12.79z" }, null, -1)
          ]))),
          N("span", n2, kA(h.value ? "☀️" : "🌙"), 1)
        ], 8, e2)) : Be("", !0),
        rA.config.showFullscreen !== !1 ? (wA(), FA("button", {
          key: 4,
          class: "toolbar-icon-btn",
          title: m(g.value ? "exitFullscreen" : "fullscreen"),
          onClick: X
        }, [
          g.value ? (wA(), FA("svg", i2, QA[13] || (QA[13] = [
            N("path", { d: "M8 3v3a2 2 0 0 1-2 2H3m18 0h-3a2 2 0 0 1-2-2V3m0 18v-3a2 2 0 0 1 2-2h3M3 16h3a2 2 0 0 1 2 2v3" }, null, -1)
          ]))) : (wA(), FA("svg", a2, QA[14] || (QA[14] = [
            N("path", { d: "M8 3H5a2 2 0 00-2 2v3m18 0V5a2 2 0 00-2-2h-3m0 18h3a2 2 0 002-2v-3M3 16v3a2 2 0 002 2h3" }, null, -1)
          ]))),
          N("span", o2, kA(g.value ? "⇲" : "⇱"), 1)
        ], 8, s2)) : Be("", !0)
      ]),
      D.value ? (wA(), FA("div", l2, [
        N("div", c2, [
          N("p", u2, kA(m("confirmDialogMessage")), 1),
          N("div", f2, [
            N("button", {
              class: "btn btn-default",
              onClick: k
            }, kA(m("cancel")), 1),
            N("button", {
              class: "btn btn-primary",
              onClick: lA
            }, kA(m("confirm")), 1)
          ])
        ])
      ])) : Be("", !0)
    ]));
  }
}), g2 = /* @__PURE__ */ mr(h2, [["__scopeId", "data-v-cf46d00e"]]), p2 = {
  success: "#67c23a",
  // 绿色
  warning: "#e6a23c",
  // 黄色
  error: "#f56c6c",
  // 红色
  info: "#909399"
  // 灰色
};
let ws = null;
function B2() {
  return ws || (ws = document.createElement("div"), ws.className = "message-container", ws.style.cssText = `
      position: fixed;
      top: 20px;
      right: 20px;
      z-index: 9999;
      display: flex;
      flex-direction: column;
      align-items: flex-end;
      gap: 12px;
      pointer-events: none;
    `, document.body.appendChild(ws)), ws;
}
const oo = /* @__PURE__ */ new Map(), of = 1e3;
function Sd() {
  return { showMessage: (e, A = "success", r) => {
    const n = Date.now(), s = `${A}:${e}`, a = oo.get(s);
    if (!(r != null && r.allowDuplicate) && a && n - a < of)
      return;
    oo.set(s, n);
    for (const [m, F] of oo.entries())
      n - F > of * 2 && oo.delete(m);
    const o = document.createElement("div");
    o.className = `message ${A}`, o.textContent = e, o.style.cssText = `
      min-width: 180px;
      max-width: 360px;
      margin: 0;
      padding: 12px 20px 12px 20px;
      border-radius: 4px;
      color: white;
      font-size: 14px;
      background: ${p2[A]};
      box-shadow: 0 2px 12px rgba(0, 0, 0, 0.1);
      pointer-events: auto;
      opacity: 0;
      display: flex;
      align-items: center;
      gap: 12px;
      transform: translateY(-20px);
      transition: opacity 0.25s, transform 0.25s;
      position: relative;
    `;
    let c = !1;
    const d = (r == null ? void 0 : r.closable) ?? !1;
    if (d) {
      const m = document.createElement("button");
      m.innerHTML = '<svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.2"><line x1="18" y1="6" x2="6" y2="18"></line><line x1="6" y1="6" x2="18" y2="18"></line></svg>', m.style.cssText = `
        background: transparent;
        border: none;
        color: white;
        cursor: pointer;
        margin-left: 8px;
        padding: 0;
        display: flex;
        align-items: center;
        opacity: 0.7;
        transition: opacity 0.2s;
      `, m.onmouseenter = () => m.style.opacity = "1", m.onmouseleave = () => m.style.opacity = "0.7", m.onclick = () => p(), o.appendChild(m);
    }
    const h = B2();
    h.appendChild(o), setTimeout(() => {
      o.style.opacity = "0.98", o.style.transform = "translateY(0)";
    }, 10);
    const g = (r == null ? void 0 : r.duration) ?? (d ? 0 : 3e3);
    let w;
    !d && g > 0 && (w = window.setTimeout(() => p(), g));
    function p() {
      c || (c = !0, o.style.opacity = "0", o.style.transform = "translateY(-20px)", w && clearTimeout(w), setTimeout(() => {
        o.parentNode && (h.removeChild(o), h.childElementCount === 0 && (h.remove(), ws = null));
      }, 250));
    }
  } };
}
const w2 = { class: "multi-select-predecessor" }, v2 = { class: "form-label" }, m2 = { class: "predecessor-selector" }, y2 = {
  key: 0,
  class: "selected-tags"
}, C2 = ["onClick"], b2 = { class: "select-wrapper" }, F2 = { value: "" }, Q2 = ["value"], U2 = /* @__PURE__ */ vr({
  __name: "MultiSelectPredecessor",
  props: {
    modelValue: { default: () => [] },
    tasks: {},
    currentTaskId: { default: void 0 },
    label: { default: "前置任务" },
    placeholder: { default: "请选择前置任务" }
  },
  emits: ["update:modelValue"],
  setup(t, { emit: e }) {
    const A = t, r = e, n = IA(""), s = pe(() => A.modelValue || []), a = pe(() => s.value.map((h) => A.tasks.find((g) => g.id === h)).filter((h) => h)), o = pe(() => A.tasks.filter(
      (h) => h.type === "task" && h.id !== A.currentTaskId && !s.value.includes(h.id)
    )), c = () => {
      if (n.value) {
        const h = Number(n.value);
        if (!s.value.includes(h)) {
          const g = [...s.value, h];
          r("update:modelValue", g);
        }
        n.value = "";
      }
    }, d = (h) => {
      const g = s.value.filter((w) => w !== h);
      r("update:modelValue", g);
    };
    return Je(
      () => A.modelValue,
      () => {
        n.value = "";
      },
      { immediate: !0 }
    ), (h, g) => (wA(), FA("div", w2, [
      N("label", v2, kA(h.label), 1),
      N("div", m2, [
        a.value.length > 0 ? (wA(), FA("div", y2, [
          (wA(!0), FA(Ve, null, ht(a.value, (w) => (wA(), FA("span", {
            key: w.id,
            class: "predecessor-tag"
          }, [
            Tt(kA(w.name) + " (" + kA(w.id) + ") ", 1),
            N("button", {
              type: "button",
              class: "remove-tag-btn",
              onClick: (p) => d(w.id)
            }, " × ", 8, C2)
          ]))), 128))
        ])) : Be("", !0),
        N("div", b2, [
          Er(N("select", {
            "onUpdate:modelValue": g[0] || (g[0] = (w) => n.value = w),
            class: "form-select",
            onChange: c
          }, [
            N("option", F2, kA(h.placeholder), 1),
            (wA(!0), FA(Ve, null, ht(o.value, (w) => (wA(), FA("option", {
              key: w.id,
              value: w.id
            }, kA(w.name) + " (ID: " + kA(w.id) + ") ", 9, Q2))), 128))
          ], 544), [
            [Mo, n.value]
          ])
        ])
      ])
    ]));
  }
}), L2 = /* @__PURE__ */ mr(U2, [["__scopeId", "data-v-dccedd3b"]]), E2 = {
  class: "drawer-header",
  style: { display: "flex", "align-items": "center", "justify-content": "flex-start", gap: "8px" }
}, x2 = {
  class: "drawer-title",
  style: { margin: "0" }
}, I2 = {
  key: 0,
  class: "drawer-timer",
  style: { display: "flex", "align-items": "center", gap: "6px", "margin-left": "8px" }
}, S2 = {
  width: "24",
  height: "24",
  viewBox: "0 0 24 24",
  fill: "none",
  style: { display: "block", margin: "0 auto" }
}, D2 = {
  key: 0,
  class: "timer-dot",
  style: { background: "#67c23a", width: "7px", height: "7px", "border-radius": "50%", "margin-right": "5px", animation: "pulse 1s infinite" }
}, k2 = {
  class: "close-icon",
  viewBox: "0 0 24 24",
  fill: "none",
  stroke: "currentColor",
  style: { "vertical-align": "middle" }
}, H2 = { class: "drawer-body" }, T2 = { class: "form-group" }, N2 = {
  class: "form-label",
  for: "task-name"
}, _2 = ["placeholder"], M2 = {
  key: 0,
  class: "error-text"
}, P2 = { class: "form-group" }, O2 = {
  class: "form-label",
  for: "task-type"
}, R2 = { value: "story" }, K2 = { value: "task" }, V2 = { value: "bug" }, G2 = {
  key: 0,
  class: "error-text"
}, j2 = { class: "form-group" }, q2 = {
  class: "form-label",
  for: "task-assignee"
}, W2 = { value: "" }, X2 = { class: "form-group" }, z2 = {
  class: "form-label",
  for: "task-parent"
}, Y2 = { value: void 0 }, J2 = ["value"], $2 = { class: "form-row" }, Z2 = { class: "form-group" }, AB = {
  class: "form-label",
  for: "task-start-date"
}, eB = {
  key: 0,
  class: "error-text"
}, tB = { class: "form-group" }, rB = {
  class: "form-label",
  for: "task-end-date"
}, nB = {
  key: 0,
  class: "error-text"
}, sB = { class: "form-row" }, iB = { class: "form-group" }, aB = {
  class: "form-label",
  for: "task-estimated-hours"
}, oB = { class: "form-group" }, lB = {
  class: "form-label",
  for: "task-actual-hours"
}, cB = { class: "form-group" }, uB = {
  class: "form-label",
  for: "task-progress"
}, fB = { class: "progress-container" }, dB = { class: "progress-input-group" }, hB = { class: "form-group" }, gB = {
  class: "form-label",
  for: "task-description"
}, pB = ["placeholder"], BB = { class: "drawer-footer" }, wB = { class: "footer-left" }, vB = ["disabled"], mB = {
  key: 0,
  class: "loading-spinner"
}, yB = { class: "footer-right" }, CB = ["disabled"], bB = {
  key: 0,
  class: "loading-spinner"
}, FB = /* @__PURE__ */ vr({
  __name: "TaskDrawer",
  props: {
    visible: { type: Boolean, default: !1 },
    task: { default: null },
    isEdit: { type: Boolean, default: !1 },
    onDelete: { type: Function, default: void 0 }
  },
  emits: ["update:visible", "submit", "close", "delete", "start-timer", "stop-timer"],
  setup(t, { emit: e }) {
    const A = t, r = e, { t: n } = In(), { showMessage: s } = Sd(), a = IA(!1), o = IA(A.visible), c = IA(!1), d = IA(0), h = IA(null), g = pe(() => {
      var nA;
      return (nA = A.task) == null ? void 0 : nA.isTimerRunning;
    }), w = pe(() => {
      var nA;
      return (nA = A.task) == null ? void 0 : nA.timerStartTime;
    }), p = pe(() => {
      var nA;
      return ((nA = A.task) == null ? void 0 : nA.timerElapsedTime) || 0;
    }), m = pe(() => {
      const nA = Math.floor(d.value / 1e3), UA = Math.floor(nA / 3600), yA = Math.floor(nA % 3600 / 60), G = nA % 60;
      return `${String(UA).padStart(2, "0")}:${String(yA).padStart(2, "0")}:${String(G).padStart(2, "0")}`;
    }), F = () => {
      g.value && w.value ? d.value = Date.now() - w.value + p.value : d.value = p.value;
    };
    Je(
      () => {
        var nA, UA, yA;
        return [(nA = A.task) == null ? void 0 : nA.isTimerRunning, (UA = A.task) == null ? void 0 : UA.timerStartTime, (yA = A.task) == null ? void 0 : yA.timerElapsedTime];
      },
      () => {
        F();
      }
    );
    const D = IA(!1);
    Je(
      () => {
        var nA;
        return (nA = A.task) == null ? void 0 : nA.isTimerRunning;
      },
      (nA) => {
        D.value = !!nA, !nA && h.value && (clearInterval(h.value), h.value = null);
      },
      { immediate: !0 }
    ), Je(
      [D, w, p],
      () => {
        h.value && (clearInterval(h.value), h.value = null), D.value && w.value ? (F(), h.value = window.setInterval(F, 1e3)) : F();
      },
      { immediate: !0 }
    ), wr(() => {
      h.value && clearInterval(h.value);
    });
    const v = pe(() => {
      var nA;
      return ((nA = A.task) == null ? void 0 : nA.type) === "story" ? "yes-no-cancel" : "confirm-cancel";
    }), E = pe(() => {
      var nA, UA, yA;
      return ((nA = A.task) == null ? void 0 : nA.type) === "story" ? n.value.confirmDeleteStory.replace("{name}", ((UA = A.task) == null ? void 0 : UA.name) || "") : n.value.confirmDeleteTask.replace("{name}", ((yA = A.task) == null ? void 0 : yA.name) || "");
    }), P = Wo({
      id: 0,
      // 默认值,创建时会被重新分配
      name: "",
      type: "task",
      assignee: "",
      startDate: "",
      endDate: "",
      predecessor: [],
      estimatedHours: 0,
      actualHours: 0,
      progress: 0,
      description: "",
      parentId: void 0
      // 上级任务ID
    }), V = IA([]), J = pe(() => V.value.filter(
      (nA) => {
        var UA;
        return nA.id !== ((UA = A.task) == null ? void 0 : UA.id) && // 排除当前任务自己
        (nA.type === "story" || nA.type === "task");
      }
      // 只显示story和task类型
    ).map((nA) => ({
      ...nA,
      displayName: `${nA.name} (${Y(nA.type || "task")})`
    }))), Y = (nA) => {
      var UA;
      return ((UA = n.value.taskTypeMap) == null ? void 0 : UA[nA]) || nA;
    }, W = pe(() => ({
      "--progress-percent": `${P.progress || 0}%`
    })), O = IA("0"), q = (nA) => {
      const UA = nA.target;
      let yA = UA.value;
      yA = yA.replace(/[^\d]/g, ""), UA.value = yA, O.value = yA;
    }, lA = () => {
      const nA = O.value;
      let UA = parseInt(nA) || 0;
      UA < 0 || isNaN(UA) ? UA = 0 : UA > 100 && (UA = 100), P.progress = UA, O.value = UA.toString();
    }, I = (nA) => {
      const UA = nA.target;
      setTimeout(() => {
        UA.select();
      }, 0);
    }, Q = (nA) => {
      const UA = nA.key, yA = [
        "Backspace",
        "Delete",
        "Tab",
        "Escape",
        "Enter",
        "ArrowLeft",
        "ArrowRight",
        "ArrowUp",
        "ArrowDown",
        "Home",
        "End",
        "Control",
        "Meta",
        "Alt",
        "Shift"
      ], G = /^\d$/.test(UA), CA = yA.includes(UA);
      nA.ctrlKey || nA.metaKey || !G && !CA && nA.preventDefault();
    }, k = Wo({
      name: "",
      type: "",
      startDate: "",
      endDate: ""
    });
    Je(
      () => A.visible,
      (nA) => {
        o.value = nA, nA && (U(), A.task && A.isEdit ? Object.assign(P, A.task) : A.task && !A.isEdit && (P.parentId = A.task.parentId ?? void 0, P.predecessor = A.task.predecessor ?? []), window.dispatchEvent(new CustomEvent("request-task-list")));
      }
    ), Je(o, (nA) => {
      r("update:visible", nA);
    }), Je(
      () => A.task,
      (nA) => {
        nA && !A.isEdit && (P.parentId = nA.parentId ?? void 0);
      },
      { immediate: !0 }
    );
    const U = () => {
      Object.assign(P, {
        name: "",
        type: "task",
        assignee: "",
        startDate: "",
        endDate: "",
        predecessor: [],
        estimatedHours: 0,
        actualHours: 0,
        progress: 0,
        description: "",
        parentId: void 0
      }), Object.keys(k).forEach((nA) => {
        k[nA] = "";
      });
    }, R = () => {
      var UA;
      let nA = !0;
      return Object.keys(k).forEach((yA) => {
        k[yA] = "";
      }), (UA = P.name) != null && UA.trim() ? P.name.length > 50 && (k.name = n.value.taskNameTooLong, nA = !1) : (k.name = n.value.taskNameRequired, nA = !1), P.type || (k.type = n.value.taskTypeRequired, nA = !1), P.startDate || (k.startDate = n.value.startDateRequired, nA = !1), P.endDate ? P.startDate && new Date(P.endDate) < new Date(P.startDate) && (k.endDate = n.value.endDateInvalid, nA = !1) : (k.endDate = n.value.endDateRequired, nA = !1), nA;
    }, X = () => {
      o.value = !1, r("close");
    }, AA = () => {
      X();
    }, z = async () => {
      if (R())
        try {
          a.value = !0;
          const nA = {
            ...P,
            id: A.isEdit && A.task ? A.task.id : Date.now()
          };
          r("submit", nA), X();
        } catch {
        } finally {
          a.value = !1;
        }
    }, aA = () => {
      c.value = !0;
    }, rA = (nA) => {
      let UA = "";
      nA && typeof nA == "object" && "message" in nA && typeof nA.message == "string" ? UA = nA.message : UA = String(nA), s(UA, "error", { closable: !0 });
    }, QA = () => {
      if (c.value = !1, A.task && A.isEdit)
        try {
          a.value = !0, r("delete", A.task), X();
        } catch (nA) {
          rA(nA);
        } finally {
          a.value = !1;
        }
    }, b = () => {
      c.value = !1;
    }, T = () => {
      if (c.value = !1, A.task && A.isEdit)
        try {
          a.value = !0, r("delete", A.task, !0), X();
        } catch (nA) {
          rA(nA);
        } finally {
          a.value = !1;
        }
    }, _ = () => {
      if (c.value = !1, A.task && A.isEdit)
        try {
          a.value = !0, r("delete", A.task, !1), X();
        } catch (nA) {
          rA(nA);
        } finally {
          a.value = !1;
        }
    }, j = (nA) => {
      V.value = nA.detail || [];
    };
    Sr(() => {
      window.addEventListener("task-list-updated", j), window.dispatchEvent(new CustomEvent("request-task-list"));
    }), wr(() => {
      window.removeEventListener("task-list-updated", j);
    }), Je(
      () => P.progress,
      (nA) => {
        O.value = (nA || 0).toString();
      },
      { immediate: !0 }
    ), Je(
      () => {
        var nA;
        return (nA = A.task) == null ? void 0 : nA.isTimerRunning;
      },
      (nA) => {
        D.value = !!nA, !nA && h.value && (clearInterval(h.value), h.value = null);
      },
      { immediate: !0 }
    ), Je(
      [D, w, p],
      () => {
        h.value && (clearInterval(h.value), h.value = null), D.value && w.value ? (F(), h.value = window.setInterval(F, 1e3)) : F();
      },
      { immediate: !0 }
    ), Je(
      () => A.visible,
      (nA) => {
        nA && A.task && A.task.type !== "story" && (d.value = A.task.timerElapsedTime || 0, A.task.isTimerRunning || h.value && (clearInterval(h.value), h.value = null));
      },
      { immediate: !0 }
    );
    const $ = (nA) => {
      const UA = Date.now();
      A.task && typeof A.task == "object" && (Object.assign(A.task, {
        timerStartTime: UA,
        isTimerRunning: !0,
        timerElapsedTime: 0,
        // 每次从0秒开始
        timerStartDesc: nA || ""
      }), r("start-timer", A.task)), d.value = 0, D.value = !0, F(), h.value && (clearInterval(h.value), h.value = null), window.dispatchEvent(new CustomEvent("start-timer", { detail: A.task }));
    }, uA = () => {
      A.task && typeof A.task == "object" && r("stop-timer", A.task), D.value = !1, h.value && (clearInterval(h.value), h.value = null), F(), window.dispatchEvent(new CustomEvent("stop-timer", { detail: A.task }));
    }, hA = IA(!1), mA = IA("");
    function jA() {
      var nA;
      mA.value = ((nA = A.task) == null ? void 0 : nA.name) || "", hA.value = !0;
    }
    function VA() {
      hA.value = !1;
    }
    function YA(nA) {
      hA.value = !1, $(nA);
    }
    return (nA, UA) => {
      var yA, G, CA, DA;
      return wA(), FA(Ve, null, [
        o.value ? (wA(), FA("div", {
          key: 0,
          class: "drawer-overlay",
          onClick: AA
        }, [
          N("div", {
            class: "drawer-container",
            onClick: UA[12] || (UA[12] = Br(() => {
            }, ["stop"]))
          }, [
            N("div", E2, [
              N("h3", x2, kA(nA.isEdit ? de(n).editTask : de(n).newTask), 1),
              ((yA = A.task) == null ? void 0 : yA.type) !== "story" && nA.isEdit ? (wA(), FA("div", I2, [
                D.value ? (wA(), FA("button", {
                  key: 1,
                  class: "timer-btn stop minimal",
                  title: "停止计时",
                  style: { width: "24px", height: "24px", background: "#f44336", border: "none", padding: "0", margin: "0", "box-shadow": "none", cursor: "pointer", "border-radius": "50%", display: "flex", "align-items": "center", "justify-content": "center", transition: "background 0.2s" },
                  onClick: Br(uA, ["stop"])
                }, UA[14] || (UA[14] = [
                  N("svg", {
                    width: "24",
                    height: "24",
                    viewBox: "0 0 24 24",
                    fill: "none"
                  }, [
                    N("circle", {
                      cx: "12",
                      cy: "12",
                      r: "11",
                      stroke: "#f44336",
                      "stroke-width": "2",
                      fill: "#f44336"
                    }),
                    N("rect", {
                      x: "7",
                      y: "7",
                      width: "10",
                      height: "10",
                      fill: "#fff",
                      rx: "1.5"
                    })
                  ], -1)
                ]))) : (wA(), FA("button", {
                  key: 0,
                  class: "timer-btn start minimal",
                  title: "开始计时",
                  style: { width: "24px", height: "24px", background: "#4caf50", border: "none", padding: "0", margin: "0", "box-shadow": "none", cursor: "pointer", "border-radius": "50%", display: "flex", "align-items": "center", "justify-content": "center", transition: "background 0.2s" },
                  onClick: Br(jA, ["stop"])
                }, [
                  (wA(), FA("svg", S2, UA[13] || (UA[13] = [
                    N("circle", {
                      cx: "12",
                      cy: "12",
                      r: "11",
                      stroke: "#4caf50",
                      "stroke-width": "2",
                      fill: "#4caf50"
                    }, null, -1),
                    N("polygon", {
                      points: "9,7 18,12 9,17",
                      fill: "#fff"
                    }, null, -1)
                  ])))
                ])),
                D.value ? (wA(), FA("span", {
                  key: 2,
                  class: Me(["timer-badge", { "timer-active": D.value }]),
                  style: { "margin-left": "8px", "font-size": "13px", "font-weight": "700", padding: "2px 10px", "border-radius": "10px", background: "#fffbe6", color: "#e6a23c", "box-shadow": "0 0 0 1px #ffe58f", display: "inline-flex", "align-items": "center", "min-width": "80px", "justify-content": "center" }
                }, [
                  D.value ? (wA(), FA("span", D2)) : Be("", !0),
                  Tt(" " + kA(m.value), 1)
                ], 2)) : Be("", !0)
              ])) : Be("", !0),
              UA[16] || (UA[16] = N("div", { style: { flex: "1" } }, null, -1)),
              N("button", {
                class: "drawer-close-btn",
                type: "button",
                onClick: X
              }, [
                (wA(), FA("svg", k2, UA[15] || (UA[15] = [
                  N("line", {
                    x1: "18",
                    y1: "6",
                    x2: "6",
                    y2: "18"
                  }, null, -1),
                  N("line", {
                    x1: "6",
                    y1: "6",
                    x2: "18",
                    y2: "18"
                  }, null, -1)
                ])))
              ])
            ]),
            N("div", H2, [
              N("form", {
                class: "task-form",
                onSubmit: Br(z, ["prevent"])
              }, [
                N("div", T2, [
                  N("label", N2, [
                    Tt(kA(de(n).taskName) + " ", 1),
                    UA[17] || (UA[17] = N("span", { class: "required" }, "*", -1))
                  ]),
                  Er(N("input", {
                    id: "task-name",
                    "onUpdate:modelValue": UA[0] || (UA[0] = (cA) => P.name = cA),
                    type: "text",
                    class: Me(["form-input", { error: k.name }]),
                    placeholder: de(n).taskNamePlaceholder
                  }, null, 10, _2), [
                    [Ln, P.name]
                  ]),
                  k.name ? (wA(), FA("span", M2, kA(k.name), 1)) : Be("", !0)
                ]),
                N("div", P2, [
                  N("label", O2, [
                    Tt(kA(de(n).taskType) + " ", 1),
                    UA[18] || (UA[18] = N("span", { class: "required" }, "*", -1))
                  ]),
                  Er(N("select", {
                    id: "task-type",
                    "onUpdate:modelValue": UA[1] || (UA[1] = (cA) => P.type = cA),
                    class: Me(["form-select", { error: k.type }])
                  }, [
                    N("option", R2, kA(de(n).taskTypeMap.story), 1),
                    N("option", K2, kA(de(n).taskTypeMap.task), 1),
                    N("option", V2, kA(de(n).taskTypeMap.bug), 1)
                  ], 2), [
                    [Mo, P.type]
                  ]),
                  k.type ? (wA(), FA("span", G2, kA(k.type), 1)) : Be("", !0)
                ]),
                N("div", j2, [
                  N("label", q2, kA(de(n).assignee), 1),
                  Er(N("select", {
                    id: "task-assignee",
                    "onUpdate:modelValue": UA[2] || (UA[2] = (cA) => P.assignee = cA),
                    class: "form-select"
                  }, [
                    N("option", W2, kA(de(n).selectAssignee), 1),
                    UA[19] || (UA[19] = Yn('<option value="张三" data-v-5c606d3b>张三</option><option value="李四" data-v-5c606d3b>李四</option><option value="王五" data-v-5c606d3b>王五</option><option value="赵六" data-v-5c606d3b>赵六</option><option value="钱七" data-v-5c606d3b>钱七</option>', 5))
                  ], 512), [
                    [Mo, P.assignee]
                  ])
                ]),
                N("div", X2, [
                  N("label", z2, kA(de(n).parentTask), 1),
                  Er(N("select", {
                    id: "task-parent",
                    "onUpdate:modelValue": UA[3] || (UA[3] = (cA) => P.parentId = cA),
                    class: "form-select"
                  }, [
                    N("option", Y2, kA(de(n).noParentTask), 1),
                    (wA(!0), FA(Ve, null, ht(J.value, (cA) => (wA(), FA("option", {
                      key: cA.id,
                      value: cA.id
                    }, kA(cA.displayName), 9, J2))), 128))
                  ], 512), [
                    [Mo, P.parentId]
                  ])
                ]),
                N("div", $2, [
                  N("div", Z2, [
                    N("label", AB, [
                      Tt(kA(de(n).startDate) + " ", 1),
                      UA[20] || (UA[20] = N("span", { class: "required" }, "*", -1))
                    ]),
                    xr(Mc, {
                      id: "task-start-date",
                      modelValue: P.startDate,
                      "onUpdate:modelValue": UA[4] || (UA[4] = (cA) => P.startDate = cA),
                      type: "date",
                      placeholder: de(n).startDateRequired,
                      class: Me({ error: k.startDate })
                    }, null, 8, ["modelValue", "placeholder", "class"]),
                    k.startDate ? (wA(), FA("span", eB, kA(k.startDate), 1)) : Be("", !0)
                  ]),
                  N("div", tB, [
                    N("label", rB, [
                      Tt(kA(de(n).endDate) + " ", 1),
                      UA[21] || (UA[21] = N("span", { class: "required" }, "*", -1))
                    ]),
                    xr(Mc, {
                      id: "task-end-date",
                      modelValue: P.endDate,
                      "onUpdate:modelValue": UA[5] || (UA[5] = (cA) => P.endDate = cA),
                      type: "date",
                      placeholder: de(n).endDateRequired,
                      class: Me({ error: k.endDate })
                    }, null, 8, ["modelValue", "placeholder", "class"]),
                    k.endDate ? (wA(), FA("span", nB, kA(k.endDate), 1)) : Be("", !0)
                  ])
                ]),
                xr(L2, {
                  modelValue: P.predecessor,
                  "onUpdate:modelValue": UA[6] || (UA[6] = (cA) => P.predecessor = cA),
                  tasks: V.value,
                  "current-task-id": (G = A.task) == null ? void 0 : G.id,
                  label: de(n).predecessor,
                  placeholder: de(n).predecessorPlaceholder
                }, null, 8, ["modelValue", "tasks", "current-task-id", "label", "placeholder"]),
                N("div", sB, [
                  N("div", iB, [
                    N("label", aB, kA(de(n).estimatedHours), 1),
                    Er(N("input", {
                      id: "task-estimated-hours",
                      "onUpdate:modelValue": UA[7] || (UA[7] = (cA) => P.estimatedHours = cA),
                      type: "number",
                      class: "form-input",
                      placeholder: "0",
                      min: "0",
                      max: "999"
                    }, null, 512), [
                      [
                        Ln,
                        P.estimatedHours,
                        void 0,
                        { number: !0 }
                      ]
                    ])
                  ]),
                  N("div", oB, [
                    N("label", lB, kA(de(n).actualHours), 1),
                    Er(N("input", {
                      id: "task-actual-hours",
                      "onUpdate:modelValue": UA[8] || (UA[8] = (cA) => P.actualHours = cA),
                      type: "number",
                      class: "form-input",
                      placeholder: "0",
                      min: "0",
                      max: "999"
                    }, null, 512), [
                      [
                        Ln,
                        P.actualHours,
                        void 0,
                        { number: !0 }
                      ]
                    ])
                  ])
                ]),
                N("div", cB, [
                  N("label", uB, kA(de(n).progress), 1),
                  N("div", fB, [
                    Er(N("input", {
                      id: "task-progress",
                      "onUpdate:modelValue": UA[9] || (UA[9] = (cA) => P.progress = cA),
                      type: "range",
                      class: "progress-slider",
                      style: At(W.value),
                      min: "0",
                      max: "100",
                      step: "5"
                    }, null, 4), [
                      [
                        Ln,
                        P.progress,
                        void 0,
                        { number: !0 }
                      ]
                    ]),
                    N("div", dB, [
                      Er(N("input", {
                        "onUpdate:modelValue": UA[10] || (UA[10] = (cA) => O.value = cA),
                        type: "text",
                        class: "progress-input",
                        placeholder: "0",
                        maxlength: "3",
                        onBlur: lA,
                        onKeyup: Vg(lA, ["enter"]),
                        onInput: q,
                        onFocus: I,
                        onKeydown: Q
                      }, null, 544), [
                        [Ln, O.value]
                      ]),
                      UA[22] || (UA[22] = N("span", { class: "progress-unit" }, "%", -1))
                    ])
                  ])
                ]),
                N("div", hB, [
                  N("label", gB, kA(de(n).description), 1),
                  Er(N("textarea", {
                    id: "task-description",
                    "onUpdate:modelValue": UA[11] || (UA[11] = (cA) => P.description = cA),
                    class: "form-textarea",
                    placeholder: de(n).descriptionPlaceholder,
                    rows: "3"
                  }, null, 8, pB), [
                    [Ln, P.description]
                  ])
                ])
              ], 32)
            ]),
            N("div", BB, [
              N("div", wB, [
                nA.isEdit && nA.task ? (wA(), FA("button", {
                  key: 0,
                  type: "button",
                  class: "btn btn-danger",
                  disabled: a.value,
                  onClick: aA
                }, [
                  a.value ? (wA(), FA("span", mB)) : Be("", !0),
                  Tt(" " + kA(de(n).delete), 1)
                ], 8, vB)) : Be("", !0),
                xr(vu, {
                  visible: c.value,
                  title: de(n).delete,
                  type: v.value,
                  message: E.value,
                  "confirm-text": de(n).confirm,
                  "cancel-text": de(n).cancel,
                  "yes-text": de(n).storyDeleteYes,
                  "no-text": de(n).storyDeleteNo,
                  onConfirm: QA,
                  onYes: T,
                  onNo: _,
                  onCancel: b
                }, null, 8, ["visible", "title", "type", "message", "confirm-text", "cancel-text", "yes-text", "no-text"])
              ]),
              N("div", yB, [
                N("button", {
                  type: "button",
                  class: "btn btn-default",
                  onClick: X
                }, kA(de(n).cancel), 1),
                N("button", {
                  type: "button",
                  class: "btn btn-primary",
                  disabled: a.value,
                  onClick: z
                }, [
                  a.value ? (wA(), FA("span", bB)) : Be("", !0),
                  Tt(" " + kA(nA.isEdit ? de(n).update : de(n).create), 1)
                ], 8, CB)
              ])
            ])
          ])
        ])) : Be("", !0),
        hA.value ? (wA(), Dr(xd, {
          key: 1,
          visible: hA.value,
          title: "确认开始计时",
          message: `即将为任务${(CA = A.task) == null ? void 0 : CA.name}计时,若有特殊说明请完善下面的描述`,
          "default-desc": ((DA = A.task) == null ? void 0 : DA.name) || "",
          onConfirm: YA,
          onCancel: VA
        }, null, 8, ["visible", "message", "default-desc"])) : Be("", !0)
      ], 64);
    };
  }
}), QB = /* @__PURE__ */ mr(FB, [["__scopeId", "data-v-5c606d3b"]]);
function et(t) {
  "@babel/helpers - typeof";
  return et = typeof Symbol == "function" && typeof Symbol.iterator == "symbol" ? function(e) {
    return typeof e;
  } : function(e) {
    return e && typeof Symbol == "function" && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : typeof e;
  }, et(t);
}
var rr = Uint8Array, Ir = Uint16Array, mu = Int32Array, al = new rr([
  0,
  0,
  0,
  0,
  0,
  0,
  0,
  0,
  1,
  1,
  1,
  1,
  2,
  2,
  2,
  2,
  3,
  3,
  3,
  3,
  4,
  4,
  4,
  4,
  5,
  5,
  5,
  5,
  0,
  /* unused */
  0,
  0,
  /* impossible */
  0
]), ol = new rr([
  0,
  0,
  0,
  0,
  1,
  1,
  2,
  2,
  3,
  3,
  4,
  4,
  5,
  5,
  6,
  6,
  7,
  7,
  8,
  8,
  9,
  9,
  10,
  10,
  11,
  11,
  12,
  12,
  13,
  13,
  /* unused */
  0,
  0
]), Pc = new rr([16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15]), Dd = function(t, e) {
  for (var A = new Ir(31), r = 0; r < 31; ++r)
    A[r] = e += 1 << t[r - 1];
  for (var n = new mu(A[30]), r = 1; r < 30; ++r)
    for (var s = A[r]; s < A[r + 1]; ++s)
      n[s] = s - A[r] << 5 | r;
  return { b: A, r: n };
}, kd = Dd(al, 2), Hd = kd.b, Oc = kd.r;
Hd[28] = 258, Oc[258] = 28;
var Td = Dd(ol, 0), UB = Td.b, lf = Td.r, Rc = new Ir(32768);
for (var ft = 0; ft < 32768; ++ft) {
  var jn = (ft & 43690) >> 1 | (ft & 21845) << 1;
  jn = (jn & 52428) >> 2 | (jn & 13107) << 2, jn = (jn & 61680) >> 4 | (jn & 3855) << 4, Rc[ft] = ((jn & 65280) >> 8 | (jn & 255) << 8) >> 1;
}
var un = function(t, e, A) {
  for (var r = t.length, n = 0, s = new Ir(e); n < r; ++n)
    t[n] && ++s[t[n] - 1];
  var a = new Ir(e);
  for (n = 1; n < e; ++n)
    a[n] = a[n - 1] + s[n - 1] << 1;
  var o;
  if (A) {
    o = new Ir(1 << e);
    var c = 15 - e;
    for (n = 0; n < r; ++n)
      if (t[n])
        for (var d = n << 4 | t[n], h = e - t[n], g = a[t[n] - 1]++ << h, w = g | (1 << h) - 1; g <= w; ++g)
          o[Rc[g] >> c] = d;
  } else
    for (o = new Ir(r), n = 0; n < r; ++n)
      t[n] && (o[n] = Rc[a[t[n] - 1]++] >> 15 - t[n]);
  return o;
}, rs = new rr(288);
for (var ft = 0; ft < 144; ++ft)
  rs[ft] = 8;
for (var ft = 144; ft < 256; ++ft)
  rs[ft] = 9;
for (var ft = 256; ft < 280; ++ft)
  rs[ft] = 7;
for (var ft = 280; ft < 288; ++ft)
  rs[ft] = 8;
var ha = new rr(32);
for (var ft = 0; ft < 32; ++ft)
  ha[ft] = 5;
var LB = /* @__PURE__ */ un(rs, 9, 0), EB = /* @__PURE__ */ un(rs, 9, 1), xB = /* @__PURE__ */ un(ha, 5, 0), IB = /* @__PURE__ */ un(ha, 5, 1), ic = function(t) {
  for (var e = t[0], A = 1; A < t.length; ++A)
    t[A] > e && (e = t[A]);
  return e;
}, Yr = function(t, e, A) {
  var r = e / 8 | 0;
  return (t[r] | t[r + 1] << 8) >> (e & 7) & A;
}, ac = function(t, e) {
  var A = e / 8 | 0;
  return (t[A] | t[A + 1] << 8 | t[A + 2] << 16) >> (e & 7);
}, yu = function(t) {
  return (t + 7) / 8 | 0;
}, Nd = function(t, e, A) {
  return (A == null || A > t.length) && (A = t.length), new rr(t.subarray(e, A));
}, SB = [
  "unexpected EOF",
  "invalid block type",
  "invalid length/literal",
  "invalid distance",
  "stream finished",
  "no stream handler",
  ,
  "no callback",
  "invalid UTF-8 data",
  "extra field too long",
  "date not in range 1980-2099",
  "filename too long",
  "stream finishing",
  "invalid zip data"
  // determined by unknown compression method
], Zr = function(t, e, A) {
  var r = new Error(e || SB[t]);
  if (r.code = t, Error.captureStackTrace && Error.captureStackTrace(r, Zr), !A)
    throw r;
  return r;
}, DB = function(t, e, A, r) {
  var n = t.length, s = 0;
  if (!n || e.f && !e.l)
    return A || new rr(0);
  var a = !A, o = a || e.i != 2, c = e.i;
  a && (A = new rr(n * 3));
  var d = function(VA) {
    var YA = A.length;
    if (VA > YA) {
      var nA = new rr(Math.max(YA * 2, VA));
      nA.set(A), A = nA;
    }
  }, h = e.f || 0, g = e.p || 0, w = e.b || 0, p = e.l, m = e.d, F = e.m, D = e.n, v = n * 8;
  do {
    if (!p) {
      h = Yr(t, g, 1);
      var E = Yr(t, g + 1, 3);
      if (g += 3, E)
        if (E == 1)
          p = EB, m = IB, F = 9, D = 5;
        else if (E == 2) {
          var Y = Yr(t, g, 31) + 257, W = Yr(t, g + 10, 15) + 4, O = Y + Yr(t, g + 5, 31) + 1;
          g += 14;
          for (var q = new rr(O), lA = new rr(19), I = 0; I < W; ++I)
            lA[Pc[I]] = Yr(t, g + I * 3, 7);
          g += W * 3;
          for (var Q = ic(lA), k = (1 << Q) - 1, U = un(lA, Q, 1), I = 0; I < O; ) {
            var R = U[Yr(t, g, k)];
            g += R & 15;
            var P = R >> 4;
            if (P < 16)
              q[I++] = P;
            else {
              var X = 0, AA = 0;
              for (P == 16 ? (AA = 3 + Yr(t, g, 3), g += 2, X = q[I - 1]) : P == 17 ? (AA = 3 + Yr(t, g, 7), g += 3) : P == 18 && (AA = 11 + Yr(t, g, 127), g += 7); AA--; )
                q[I++] = X;
            }
          }
          var z = q.subarray(0, Y), aA = q.subarray(Y);
          F = ic(z), D = ic(aA), p = un(z, F, 1), m = un(aA, D, 1);
        } else
          Zr(1);
      else {
        var P = yu(g) + 4, V = t[P - 4] | t[P - 3] << 8, J = P + V;
        if (J > n) {
          c && Zr(0);
          break;
        }
        o && d(w + V), A.set(t.subarray(P, J), w), e.b = w += V, e.p = g = J * 8, e.f = h;
        continue;
      }
      if (g > v) {
        c && Zr(0);
        break;
      }
    }
    o && d(w + 131072);
    for (var rA = (1 << F) - 1, QA = (1 << D) - 1, b = g; ; b = g) {
      var X = p[ac(t, g) & rA], T = X >> 4;
      if (g += X & 15, g > v) {
        c && Zr(0);
        break;
      }
      if (X || Zr(2), T < 256)
        A[w++] = T;
      else if (T == 256) {
        b = g, p = null;
        break;
      } else {
        var _ = T - 254;
        if (T > 264) {
          var I = T - 257, j = al[I];
          _ = Yr(t, g, (1 << j) - 1) + Hd[I], g += j;
        }
        var $ = m[ac(t, g) & QA], uA = $ >> 4;
        $ || Zr(3), g += $ & 15;
        var aA = UB[uA];
        if (uA > 3) {
          var j = ol[uA];
          aA += ac(t, g) & (1 << j) - 1, g += j;
        }
        if (g > v) {
          c && Zr(0);
          break;
        }
        o && d(w + 131072);
        var hA = w + _;
        if (w < aA) {
          var mA = s - aA, jA = Math.min(aA, hA);
          for (mA + w < 0 && Zr(3); w < jA; ++w)
            A[w] = r[mA + w];
        }
        for (; w < hA; ++w)
          A[w] = A[w - aA];
      }
    }
    e.l = p, e.p = b, e.b = w, e.f = h, p && (h = 1, e.m = F, e.d = m, e.n = D);
  } while (!h);
  return w != A.length && a ? Nd(A, 0, w) : A.subarray(0, w);
}, Fn = function(t, e, A) {
  A <<= e & 7;
  var r = e / 8 | 0;
  t[r] |= A, t[r + 1] |= A >> 8;
}, zi = function(t, e, A) {
  A <<= e & 7;
  var r = e / 8 | 0;
  t[r] |= A, t[r + 1] |= A >> 8, t[r + 2] |= A >> 16;
}, oc = function(t, e) {
  for (var A = [], r = 0; r < t.length; ++r)
    t[r] && A.push({ s: r, f: t[r] });
  var n = A.length, s = A.slice();
  if (!n)
    return { t: Md, l: 0 };
  if (n == 1) {
    var a = new rr(A[0].s + 1);
    return a[A[0].s] = 1, { t: a, l: 1 };
  }
  A.sort(function(J, Y) {
    return J.f - Y.f;
  }), A.push({ s: -1, f: 25001 });
  var o = A[0], c = A[1], d = 0, h = 1, g = 2;
  for (A[0] = { s: -1, f: o.f + c.f, l: o, r: c }; h != n - 1; )
    o = A[A[d].f < A[g].f ? d++ : g++], c = A[d != h && A[d].f < A[g].f ? d++ : g++], A[h++] = { s: -1, f: o.f + c.f, l: o, r: c };
  for (var w = s[0].s, r = 1; r < n; ++r)
    s[r].s > w && (w = s[r].s);
  var p = new Ir(w + 1), m = Kc(A[h - 1], p, 0);
  if (m > e) {
    var r = 0, F = 0, D = m - e, v = 1 << D;
    for (s.sort(function(Y, W) {
      return p[W.s] - p[Y.s] || Y.f - W.f;
    }); r < n; ++r) {
      var E = s[r].s;
      if (p[E] > e)
        F += v - (1 << m - p[E]), p[E] = e;
      else
        break;
    }
    for (F >>= D; F > 0; ) {
      var P = s[r].s;
      p[P] < e ? F -= 1 << e - p[P]++ - 1 : ++r;
    }
    for (; r >= 0 && F; --r) {
      var V = s[r].s;
      p[V] == e && (--p[V], ++F);
    }
    m = e;
  }
  return { t: new rr(p), l: m };
}, Kc = function(t, e, A) {
  return t.s == -1 ? Math.max(Kc(t.l, e, A + 1), Kc(t.r, e, A + 1)) : e[t.s] = A;
}, cf = function(t) {
  for (var e = t.length; e && !t[--e]; )
    ;
  for (var A = new Ir(++e), r = 0, n = t[0], s = 1, a = function(c) {
    A[r++] = c;
  }, o = 1; o <= e; ++o)
    if (t[o] == n && o != e)
      ++s;
    else {
      if (!n && s > 2) {
        for (; s > 138; s -= 138)
          a(32754);
        s > 2 && (a(s > 10 ? s - 11 << 5 | 28690 : s - 3 << 5 | 12305), s = 0);
      } else if (s > 3) {
        for (a(n), --s; s > 6; s -= 6)
          a(8304);
        s > 2 && (a(s - 3 << 5 | 8208), s = 0);
      }
      for (; s--; )
        a(n);
      s = 1, n = t[o];
    }
  return { c: A.subarray(0, r), n: e };
}, Yi = function(t, e) {
  for (var A = 0, r = 0; r < e.length; ++r)
    A += t[r] * e[r];
  return A;
}, _d = function(t, e, A) {
  var r = A.length, n = yu(e + 2);
  t[n] = r & 255, t[n + 1] = r >> 8, t[n + 2] = t[n] ^ 255, t[n + 3] = t[n + 1] ^ 255;
  for (var s = 0; s < r; ++s)
    t[n + s + 4] = A[s];
  return (n + 4 + r) * 8;
}, uf = function(t, e, A, r, n, s, a, o, c, d, h) {
  Fn(e, h++, A), ++n[256];
  for (var g = oc(n, 15), w = g.t, p = g.l, m = oc(s, 15), F = m.t, D = m.l, v = cf(w), E = v.c, P = v.n, V = cf(F), J = V.c, Y = V.n, W = new Ir(19), O = 0; O < E.length; ++O)
    ++W[E[O] & 31];
  for (var O = 0; O < J.length; ++O)
    ++W[J[O] & 31];
  for (var q = oc(W, 7), lA = q.t, I = q.l, Q = 19; Q > 4 && !lA[Pc[Q - 1]]; --Q)
    ;
  var k = d + 5 << 3, U = Yi(n, rs) + Yi(s, ha) + a, R = Yi(n, w) + Yi(s, F) + a + 14 + 3 * Q + Yi(W, lA) + 2 * W[16] + 3 * W[17] + 7 * W[18];
  if (c >= 0 && k <= U && k <= R)
    return _d(e, h, t.subarray(c, c + d));
  var X, AA, z, aA;
  if (Fn(e, h, 1 + (R < U)), h += 2, R < U) {
    X = un(w, p, 0), AA = w, z = un(F, D, 0), aA = F;
    var rA = un(lA, I, 0);
    Fn(e, h, P - 257), Fn(e, h + 5, Y - 1), Fn(e, h + 10, Q - 4), h += 14;
    for (var O = 0; O < Q; ++O)
      Fn(e, h + 3 * O, lA[Pc[O]]);
    h += 3 * Q;
    for (var QA = [E, J], b = 0; b < 2; ++b)
      for (var T = QA[b], O = 0; O < T.length; ++O) {
        var _ = T[O] & 31;
        Fn(e, h, rA[_]), h += lA[_], _ > 15 && (Fn(e, h, T[O] >> 5 & 127), h += T[O] >> 12);
      }
  } else
    X = LB, AA = rs, z = xB, aA = ha;
  for (var O = 0; O < o; ++O) {
    var j = r[O];
    if (j > 255) {
      var _ = j >> 18 & 31;
      zi(e, h, X[_ + 257]), h += AA[_ + 257], _ > 7 && (Fn(e, h, j >> 23 & 31), h += al[_]);
      var $ = j & 31;
      zi(e, h, z[$]), h += aA[$], $ > 3 && (zi(e, h, j >> 5 & 8191), h += ol[$]);
    } else
      zi(e, h, X[j]), h += AA[j];
  }
  return zi(e, h, X[256]), h + AA[256];
}, kB = /* @__PURE__ */ new mu([65540, 131080, 131088, 131104, 262176, 1048704, 1048832, 2114560, 2117632]), Md = /* @__PURE__ */ new rr(0), HB = function(t, e, A, r, n, s) {
  var a = s.z || t.length, o = new rr(r + a + 5 * (1 + Math.ceil(a / 7e3)) + n), c = o.subarray(r, o.length - n), d = s.l, h = (s.r || 0) & 7;
  if (e) {
    h && (c[0] = s.r >> 3);
    for (var g = kB[e - 1], w = g >> 13, p = g & 8191, m = (1 << A) - 1, F = s.p || new Ir(32768), D = s.h || new Ir(m + 1), v = Math.ceil(A / 3), E = 2 * v, P = function(UA) {
      return (t[UA] ^ t[UA + 1] << v ^ t[UA + 2] << E) & m;
    }, V = new mu(25e3), J = new Ir(288), Y = new Ir(32), W = 0, O = 0, q = s.i || 0, lA = 0, I = s.w || 0, Q = 0; q + 2 < a; ++q) {
      var k = P(q), U = q & 32767, R = D[k];
      if (F[U] = R, D[k] = U, I <= q) {
        var X = a - q;
        if ((W > 7e3 || lA > 24576) && (X > 423 || !d)) {
          h = uf(t, c, 0, V, J, Y, O, lA, Q, q - Q, h), lA = W = O = 0, Q = q;
          for (var AA = 0; AA < 286; ++AA)
            J[AA] = 0;
          for (var AA = 0; AA < 30; ++AA)
            Y[AA] = 0;
        }
        var z = 2, aA = 0, rA = p, QA = U - R & 32767;
        if (X > 2 && k == P(q - QA))
          for (var b = Math.min(w, X) - 1, T = Math.min(32767, q), _ = Math.min(258, X); QA <= T && --rA && U != R; ) {
            if (t[q + z] == t[q + z - QA]) {
              for (var j = 0; j < _ && t[q + j] == t[q + j - QA]; ++j)
                ;
              if (j > z) {
                if (z = j, aA = QA, j > b)
                  break;
                for (var $ = Math.min(QA, j - 2), uA = 0, AA = 0; AA < $; ++AA) {
                  var hA = q - QA + AA & 32767, mA = F[hA], jA = hA - mA & 32767;
                  jA > uA && (uA = jA, R = hA);
                }
              }
            }
            U = R, R = F[U], QA += U - R & 32767;
          }
        if (aA) {
          V[lA++] = 268435456 | Oc[z] << 18 | lf[aA];
          var VA = Oc[z] & 31, YA = lf[aA] & 31;
          O += al[VA] + ol[YA], ++J[257 + VA], ++Y[YA], I = q + z, ++W;
        } else
          V[lA++] = t[q], ++J[t[q]];
      }
    }
    for (q = Math.max(q, I); q < a; ++q)
      V[lA++] = t[q], ++J[t[q]];
    h = uf(t, c, d, V, J, Y, O, lA, Q, q - Q, h), d || (s.r = h & 7 | c[h / 8 | 0] << 3, h -= 7, s.h = D, s.p = F, s.i = q, s.w = I);
  } else {
    for (var q = s.w || 0; q < a + d; q += 65535) {
      var nA = q + 65535;
      nA >= a && (c[h / 8 | 0] = d, nA = a), h = _d(c, h + 1, t.subarray(q, nA));
    }
    s.i = a;
  }
  return Nd(o, 0, r + yu(h) + n);
}, Pd = function() {
  var t = 1, e = 0;
  return {
    p: function(A) {
      for (var r = t, n = e, s = A.length | 0, a = 0; a != s; ) {
        for (var o = Math.min(a + 2655, s); a < o; ++a)
          n += r += A[a];
        r = (r & 65535) + 15 * (r >> 16), n = (n & 65535) + 15 * (n >> 16);
      }
      t = r, e = n;
    },
    d: function() {
      return t %= 65521, e %= 65521, (t & 255) << 24 | (t & 65280) << 8 | (e & 255) << 8 | e >> 8;
    }
  };
}, TB = function(t, e, A, r, n) {
  if (!n && (n = { l: 1 }, e.dictionary)) {
    var s = e.dictionary.subarray(-32768), a = new rr(s.length + t.length);
    a.set(s), a.set(t, s.length), t = a, n.w = s.length;
  }
  return HB(t, e.level == null ? 6 : e.level, e.mem == null ? n.l ? Math.ceil(Math.max(8, Math.min(13, Math.log(t.length))) * 1.5) : 20 : 12 + e.mem, A, r, n);
}, Od = function(t, e, A) {
  for (; A; ++e)
    t[e] = A, A >>>= 8;
}, NB = function(t, e) {
  var A = e.level, r = A == 0 ? 0 : A < 6 ? 1 : A == 9 ? 3 : 2;
  if (t[0] = 120, t[1] = r << 6 | (e.dictionary && 32), t[1] |= 31 - (t[0] << 8 | t[1]) % 31, e.dictionary) {
    var n = Pd();
    n.p(e.dictionary), Od(t, 2, n.d());
  }
}, _B = function(t, e) {
  return ((t[0] & 15) != 8 || t[0] >> 4 > 7 || (t[0] << 8 | t[1]) % 31) && Zr(6, "invalid zlib data"), (t[1] >> 5 & 1) == 1 && Zr(6, "invalid zlib data: " + (t[1] & 32 ? "need" : "unexpected") + " dictionary"), (t[1] >> 3 & 4) + 2;
};
function Vc(t, e) {
  e || (e = {});
  var A = Pd();
  A.p(t);
  var r = TB(t, e, e.dictionary ? 6 : 2, 4);
  return NB(r, e), Od(r, r.length - 4, A.d()), r;
}
function MB(t, e) {
  return DB(t.subarray(_B(t), -4), { i: 2 }, e, e);
}
var PB = typeof TextDecoder < "u" && /* @__PURE__ */ new TextDecoder(), OB = 0;
try {
  PB.decode(Md, { stream: !0 }), OB = 1;
} catch {
}
/** @license
 *
 * jsPDF - PDF Document creation from JavaScript
 * Version 3.0.1 Built on 2025-03-17T14:19:36.873Z
 *                      CommitID 00000000
 *
 * Copyright (c) 2010-2021 James Hall <james@parall.ax>, https://github.com/MrRio/jsPDF
 *               2015-2021 yWorks GmbH, http://www.yworks.com
 *               2015-2021 Lukas Holländer <lukas.hollaender@yworks.com>, https://github.com/HackbrettXXX
 *               2016-2018 Aras Abbasi <aras.abbasi@gmail.com>
 *               2010 Aaron Spike, https://github.com/acspike
 *               2012 Willow Systems Corporation, https://github.com/willowsystems
 *               2012 Pablo Hess, https://github.com/pablohess
 *               2012 Florian Jenett, https://github.com/fjenett
 *               2013 Warren Weckesser, https://github.com/warrenweckesser
 *               2013 Youssef Beddad, https://github.com/lifof
 *               2013 Lee Driscoll, https://github.com/lsdriscoll
 *               2013 Stefan Slonevskiy, https://github.com/stefslon
 *               2013 Jeremy Morel, https://github.com/jmorel
 *               2013 Christoph Hartmann, https://github.com/chris-rock
 *               2014 Juan Pablo Gaviria, https://github.com/juanpgaviria
 *               2014 James Makes, https://github.com/dollaruw
 *               2014 Diego Casorran, https://github.com/diegocr
 *               2014 Steven Spungin, https://github.com/Flamenco
 *               2014 Kenneth Glassey, https://github.com/Gavvers
 *
 * Permission is hereby granted, free of charge, to any person obtaining
 * a copy of this software and associated documentation files (the
 * "Software"), to deal in the Software without restriction, including
 * without limitation the rights to use, copy, modify, merge, publish,
 * distribute, sublicense, and/or sell copies of the Software, and to
 * permit persons to whom the Software is furnished to do so, subject to
 * the following conditions:
 *
 * The above copyright notice and this permission notice shall be
 * included in all copies or substantial portions of the Software.
 *
 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
 * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
 * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
 * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 *
 * Contributor(s):
 *    siefkenj, ahwolf, rickygu, Midnith, saintclair, eaparango,
 *    kim3er, mfo, alnorth, Flamenco
 */
var Qe = /* @__PURE__ */ function() {
  return typeof window < "u" ? window : typeof global < "u" ? global : typeof self < "u" ? self : this;
}();
function lc() {
  Qe.console && typeof Qe.console.log == "function" && Qe.console.log.apply(Qe.console, arguments);
}
var ot = { log: lc, warn: function(t) {
  Qe.console && (typeof Qe.console.warn == "function" ? Qe.console.warn.apply(Qe.console, arguments) : lc.call(null, arguments));
}, error: function(t) {
  Qe.console && (typeof Qe.console.error == "function" ? Qe.console.error.apply(Qe.console, arguments) : lc(t));
} };
function cc(t, e, A) {
  var r = new XMLHttpRequest();
  r.open("GET", t), r.responseType = "blob", r.onload = function() {
    vs(r.response, e, A);
  }, r.onerror = function() {
    ot.error("could not download file");
  }, r.send();
}
function ff(t) {
  var e = new XMLHttpRequest();
  e.open("HEAD", t, !1);
  try {
    e.send();
  } catch {
  }
  return e.status >= 200 && e.status <= 299;
}
function lo(t) {
  try {
    t.dispatchEvent(new MouseEvent("click"));
  } catch {
    var e = document.createEvent("MouseEvents");
    e.initMouseEvent("click", !0, !0, window, 0, 0, 0, 80, 20, !1, !1, !1, !1, 0, null), t.dispatchEvent(e);
  }
}
var oa, Gc, vs = Qe.saveAs || ((typeof window > "u" ? "undefined" : et(window)) !== "object" || window !== Qe ? function() {
} : typeof HTMLAnchorElement < "u" && "download" in HTMLAnchorElement.prototype ? function(t, e, A) {
  var r = Qe.URL || Qe.webkitURL, n = document.createElement("a");
  e = e || t.name || "download", n.download = e, n.rel = "noopener", typeof t == "string" ? (n.href = t, n.origin !== location.origin ? ff(n.href) ? cc(t, e, A) : lo(n, n.target = "_blank") : lo(n)) : (n.href = r.createObjectURL(t), setTimeout(function() {
    r.revokeObjectURL(n.href);
  }, 4e4), setTimeout(function() {
    lo(n);
  }, 0));
} : "msSaveOrOpenBlob" in navigator ? function(t, e, A) {
  if (e = e || t.name || "download", typeof t == "string") if (ff(t)) cc(t, e, A);
  else {
    var r = document.createElement("a");
    r.href = t, r.target = "_blank", setTimeout(function() {
      lo(r);
    });
  }
  else navigator.msSaveOrOpenBlob(function(n, s) {
    return s === void 0 ? s = { autoBom: !1 } : et(s) !== "object" && (ot.warn("Deprecated: Expected third argument to be a object"), s = { autoBom: !s }), s.autoBom && /^\s*(?:text\/\S*|application\/xml|\S*\/\S*\+xml)\s*;.*charset\s*=\s*utf-8/i.test(n.type) ? new Blob(["\uFEFF", n], { type: n.type }) : n;
  }(t, A), e);
} : function(t, e, A, r) {
  if ((r = r || open("", "_blank")) && (r.document.title = r.document.body.innerText = "downloading..."), typeof t == "string") return cc(t, e, A);
  var n = t.type === "application/octet-stream", s = /constructor/i.test(Qe.HTMLElement) || Qe.safari, a = /CriOS\/[\d]+/.test(navigator.userAgent);
  if ((a || n && s) && (typeof FileReader > "u" ? "undefined" : et(FileReader)) === "object") {
    var o = new FileReader();
    o.onloadend = function() {
      var h = o.result;
      h = a ? h : h.replace(/^data:[^;]*;/, "data:attachment/file;"), r ? r.location.href = h : location = h, r = null;
    }, o.readAsDataURL(t);
  } else {
    var c = Qe.URL || Qe.webkitURL, d = c.createObjectURL(t);
    r ? r.location = d : location.href = d, r = null, setTimeout(function() {
      c.revokeObjectURL(d);
    }, 4e4);
  }
});
/**
 * A class to parse color values
 * @author Stoyan Stefanov <sstoo@gmail.com>
 * {@link   http://www.phpied.com/rgb-color-parser-in-javascript/}
 * @license Use it if you like it
 */
function Rd(t) {
  var e;
  t = t || "", this.ok = !1, t.charAt(0) == "#" && (t = t.substr(1, 6)), t = { aliceblue: "f0f8ff", antiquewhite: "faebd7", aqua: "00ffff", aquamarine: "7fffd4", azure: "f0ffff", beige: "f5f5dc", bisque: "ffe4c4", black: "000000", blanchedalmond: "ffebcd", blue: "0000ff", blueviolet: "8a2be2", brown: "a52a2a", burlywood: "deb887", cadetblue: "5f9ea0", chartreuse: "7fff00", chocolate: "d2691e", coral: "ff7f50", cornflowerblue: "6495ed", cornsilk: "fff8dc", crimson: "dc143c", cyan: "00ffff", darkblue: "00008b", darkcyan: "008b8b", darkgoldenrod: "b8860b", darkgray: "a9a9a9", darkgreen: "006400", darkkhaki: "bdb76b", darkmagenta: "8b008b", darkolivegreen: "556b2f", darkorange: "ff8c00", darkorchid: "9932cc", darkred: "8b0000", darksalmon: "e9967a", darkseagreen: "8fbc8f", darkslateblue: "483d8b", darkslategray: "2f4f4f", darkturquoise: "00ced1", darkviolet: "9400d3", deeppink: "ff1493", deepskyblue: "00bfff", dimgray: "696969", dodgerblue: "1e90ff", feldspar: "d19275", firebrick: "b22222", floralwhite: "fffaf0", forestgreen: "228b22", fuchsia: "ff00ff", gainsboro: "dcdcdc", ghostwhite: "f8f8ff", gold: "ffd700", goldenrod: "daa520", gray: "808080", green: "008000", greenyellow: "adff2f", honeydew: "f0fff0", hotpink: "ff69b4", indianred: "cd5c5c", indigo: "4b0082", ivory: "fffff0", khaki: "f0e68c", lavender: "e6e6fa", lavenderblush: "fff0f5", lawngreen: "7cfc00", lemonchiffon: "fffacd", lightblue: "add8e6", lightcoral: "f08080", lightcyan: "e0ffff", lightgoldenrodyellow: "fafad2", lightgrey: "d3d3d3", lightgreen: "90ee90", lightpink: "ffb6c1", lightsalmon: "ffa07a", lightseagreen: "20b2aa", lightskyblue: "87cefa", lightslateblue: "8470ff", lightslategray: "778899", lightsteelblue: "b0c4de", lightyellow: "ffffe0", lime: "00ff00", limegreen: "32cd32", linen: "faf0e6", magenta: "ff00ff", maroon: "800000", mediumaquamarine: "66cdaa", mediumblue: "0000cd", mediumorchid: "ba55d3", mediumpurple: "9370d8", mediumseagreen: "3cb371", mediumslateblue: "7b68ee", mediumspringgreen: "00fa9a", mediumturquoise: "48d1cc", mediumvioletred: "c71585", midnightblue: "191970", mintcream: "f5fffa", mistyrose: "ffe4e1", moccasin: "ffe4b5", navajowhite: "ffdead", navy: "000080", oldlace: "fdf5e6", olive: "808000", olivedrab: "6b8e23", orange: "ffa500", orangered: "ff4500", orchid: "da70d6", palegoldenrod: "eee8aa", palegreen: "98fb98", paleturquoise: "afeeee", palevioletred: "d87093", papayawhip: "ffefd5", peachpuff: "ffdab9", peru: "cd853f", pink: "ffc0cb", plum: "dda0dd", powderblue: "b0e0e6", purple: "800080", red: "ff0000", rosybrown: "bc8f8f", royalblue: "4169e1", saddlebrown: "8b4513", salmon: "fa8072", sandybrown: "f4a460", seagreen: "2e8b57", seashell: "fff5ee", sienna: "a0522d", silver: "c0c0c0", skyblue: "87ceeb", slateblue: "6a5acd", slategray: "708090", snow: "fffafa", springgreen: "00ff7f", steelblue: "4682b4", tan: "d2b48c", teal: "008080", thistle: "d8bfd8", tomato: "ff6347", turquoise: "40e0d0", violet: "ee82ee", violetred: "d02090", wheat: "f5deb3", white: "ffffff", whitesmoke: "f5f5f5", yellow: "ffff00", yellowgreen: "9acd32" }[t = (t = t.replace(/ /g, "")).toLowerCase()] || t;
  for (var A = [{ re: /^rgb\((\d{1,3}),\s*(\d{1,3}),\s*(\d{1,3})\)$/, example: ["rgb(123, 234, 45)", "rgb(255,234,245)"], process: function(o) {
    return [parseInt(o[1]), parseInt(o[2]), parseInt(o[3])];
  } }, { re: /^(\w{2})(\w{2})(\w{2})$/, example: ["#00ff00", "336699"], process: function(o) {
    return [parseInt(o[1], 16), parseInt(o[2], 16), parseInt(o[3], 16)];
  } }, { re: /^(\w{1})(\w{1})(\w{1})$/, example: ["#fb0", "f0f"], process: function(o) {
    return [parseInt(o[1] + o[1], 16), parseInt(o[2] + o[2], 16), parseInt(o[3] + o[3], 16)];
  } }], r = 0; r < A.length; r++) {
    var n = A[r].re, s = A[r].process, a = n.exec(t);
    a && (e = s(a), this.r = e[0], this.g = e[1], this.b = e[2], this.ok = !0);
  }
  this.r = this.r < 0 || isNaN(this.r) ? 0 : this.r > 255 ? 255 : this.r, this.g = this.g < 0 || isNaN(this.g) ? 0 : this.g > 255 ? 255 : this.g, this.b = this.b < 0 || isNaN(this.b) ? 0 : this.b > 255 ? 255 : this.b, this.toRGB = function() {
    return "rgb(" + this.r + ", " + this.g + ", " + this.b + ")";
  }, this.toHex = function() {
    var o = this.r.toString(16), c = this.g.toString(16), d = this.b.toString(16);
    return o.length == 1 && (o = "0" + o), c.length == 1 && (c = "0" + c), d.length == 1 && (d = "0" + d), "#" + o + c + d;
  };
}
/**
 * @license
 * Joseph Myers does not specify a particular license for his work.
 *
 * Author: Joseph Myers
 * Accessed from: http://www.myersdaily.org/joseph/javascript/md5.js
 *
 * Modified by: Owen Leong
 */
function uc(t, e) {
  var A = t[0], r = t[1], n = t[2], s = t[3];
  A = Jt(A, r, n, s, e[0], 7, -680876936), s = Jt(s, A, r, n, e[1], 12, -389564586), n = Jt(n, s, A, r, e[2], 17, 606105819), r = Jt(r, n, s, A, e[3], 22, -1044525330), A = Jt(A, r, n, s, e[4], 7, -176418897), s = Jt(s, A, r, n, e[5], 12, 1200080426), n = Jt(n, s, A, r, e[6], 17, -1473231341), r = Jt(r, n, s, A, e[7], 22, -45705983), A = Jt(A, r, n, s, e[8], 7, 1770035416), s = Jt(s, A, r, n, e[9], 12, -1958414417), n = Jt(n, s, A, r, e[10], 17, -42063), r = Jt(r, n, s, A, e[11], 22, -1990404162), A = Jt(A, r, n, s, e[12], 7, 1804603682), s = Jt(s, A, r, n, e[13], 12, -40341101), n = Jt(n, s, A, r, e[14], 17, -1502002290), A = $t(A, r = Jt(r, n, s, A, e[15], 22, 1236535329), n, s, e[1], 5, -165796510), s = $t(s, A, r, n, e[6], 9, -1069501632), n = $t(n, s, A, r, e[11], 14, 643717713), r = $t(r, n, s, A, e[0], 20, -373897302), A = $t(A, r, n, s, e[5], 5, -701558691), s = $t(s, A, r, n, e[10], 9, 38016083), n = $t(n, s, A, r, e[15], 14, -660478335), r = $t(r, n, s, A, e[4], 20, -405537848), A = $t(A, r, n, s, e[9], 5, 568446438), s = $t(s, A, r, n, e[14], 9, -1019803690), n = $t(n, s, A, r, e[3], 14, -187363961), r = $t(r, n, s, A, e[8], 20, 1163531501), A = $t(A, r, n, s, e[13], 5, -1444681467), s = $t(s, A, r, n, e[2], 9, -51403784), n = $t(n, s, A, r, e[7], 14, 1735328473), A = Zt(A, r = $t(r, n, s, A, e[12], 20, -1926607734), n, s, e[5], 4, -378558), s = Zt(s, A, r, n, e[8], 11, -2022574463), n = Zt(n, s, A, r, e[11], 16, 1839030562), r = Zt(r, n, s, A, e[14], 23, -35309556), A = Zt(A, r, n, s, e[1], 4, -1530992060), s = Zt(s, A, r, n, e[4], 11, 1272893353), n = Zt(n, s, A, r, e[7], 16, -155497632), r = Zt(r, n, s, A, e[10], 23, -1094730640), A = Zt(A, r, n, s, e[13], 4, 681279174), s = Zt(s, A, r, n, e[0], 11, -358537222), n = Zt(n, s, A, r, e[3], 16, -722521979), r = Zt(r, n, s, A, e[6], 23, 76029189), A = Zt(A, r, n, s, e[9], 4, -640364487), s = Zt(s, A, r, n, e[12], 11, -421815835), n = Zt(n, s, A, r, e[15], 16, 530742520), A = Ar(A, r = Zt(r, n, s, A, e[2], 23, -995338651), n, s, e[0], 6, -198630844), s = Ar(s, A, r, n, e[7], 10, 1126891415), n = Ar(n, s, A, r, e[14], 15, -1416354905), r = Ar(r, n, s, A, e[5], 21, -57434055), A = Ar(A, r, n, s, e[12], 6, 1700485571), s = Ar(s, A, r, n, e[3], 10, -1894986606), n = Ar(n, s, A, r, e[10], 15, -1051523), r = Ar(r, n, s, A, e[1], 21, -2054922799), A = Ar(A, r, n, s, e[8], 6, 1873313359), s = Ar(s, A, r, n, e[15], 10, -30611744), n = Ar(n, s, A, r, e[6], 15, -1560198380), r = Ar(r, n, s, A, e[13], 21, 1309151649), A = Ar(A, r, n, s, e[4], 6, -145523070), s = Ar(s, A, r, n, e[11], 10, -1120210379), n = Ar(n, s, A, r, e[2], 15, 718787259), r = Ar(r, n, s, A, e[9], 21, -343485551), t[0] = Jn(A, t[0]), t[1] = Jn(r, t[1]), t[2] = Jn(n, t[2]), t[3] = Jn(s, t[3]);
}
function ll(t, e, A, r, n, s) {
  return e = Jn(Jn(e, t), Jn(r, s)), Jn(e << n | e >>> 32 - n, A);
}
function Jt(t, e, A, r, n, s, a) {
  return ll(e & A | ~e & r, t, e, n, s, a);
}
function $t(t, e, A, r, n, s, a) {
  return ll(e & r | A & ~r, t, e, n, s, a);
}
function Zt(t, e, A, r, n, s, a) {
  return ll(e ^ A ^ r, t, e, n, s, a);
}
function Ar(t, e, A, r, n, s, a) {
  return ll(A ^ (e | ~r), t, e, n, s, a);
}
function Kd(t) {
  var e, A = t.length, r = [1732584193, -271733879, -1732584194, 271733878];
  for (e = 64; e <= t.length; e += 64) uc(r, RB(t.substring(e - 64, e)));
  t = t.substring(e - 64);
  var n = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];
  for (e = 0; e < t.length; e++) n[e >> 2] |= t.charCodeAt(e) << (e % 4 << 3);
  if (n[e >> 2] |= 128 << (e % 4 << 3), e > 55) for (uc(r, n), e = 0; e < 16; e++) n[e] = 0;
  return n[14] = 8 * A, uc(r, n), r;
}
function RB(t) {
  var e, A = [];
  for (e = 0; e < 64; e += 4) A[e >> 2] = t.charCodeAt(e) + (t.charCodeAt(e + 1) << 8) + (t.charCodeAt(e + 2) << 16) + (t.charCodeAt(e + 3) << 24);
  return A;
}
oa = Qe.atob.bind(Qe), Gc = Qe.btoa.bind(Qe);
var df = "0123456789abcdef".split("");
function KB(t) {
  for (var e = "", A = 0; A < 4; A++) e += df[t >> 8 * A + 4 & 15] + df[t >> 8 * A & 15];
  return e;
}
function VB(t) {
  return String.fromCharCode((255 & t) >> 0, (65280 & t) >> 8, (16711680 & t) >> 16, (4278190080 & t) >> 24);
}
function jc(t) {
  return Kd(t).map(VB).join("");
}
var GB = function(t) {
  for (var e = 0; e < t.length; e++) t[e] = KB(t[e]);
  return t.join("");
}(Kd("hello")) != "5d41402abc4b2a76b9719d911017c592";
function Jn(t, e) {
  if (GB) {
    var A = (65535 & t) + (65535 & e);
    return (t >> 16) + (e >> 16) + (A >> 16) << 16 | 65535 & A;
  }
  return t + e & 4294967295;
}
/**
 * @license
 * FPDF is released under a permissive license: there is no usage restriction.
 * You may embed it freely in your application (commercial or not), with or
 * without modifications.
 *
 * Reference: http://www.fpdf.org/en/script/script37.php
 */
function qc(t, e) {
  var A, r, n, s;
  if (t !== A) {
    for (var a = (n = t, s = 1 + (256 / t.length >> 0), new Array(s + 1).join(n)), o = [], c = 0; c < 256; c++) o[c] = c;
    var d = 0;
    for (c = 0; c < 256; c++) {
      var h = o[c];
      d = (d + h + a.charCodeAt(c)) % 256, o[c] = o[d], o[d] = h;
    }
    A = t, r = o;
  } else o = r;
  var g = e.length, w = 0, p = 0, m = "";
  for (c = 0; c < g; c++) p = (p + (h = o[w = (w + 1) % 256])) % 256, o[w] = o[p], o[p] = h, a = o[(o[w] + o[p]) % 256], m += String.fromCharCode(e.charCodeAt(c) ^ a);
  return m;
}
/**
 * @license
 * Licensed under the MIT License.
 * http://opensource.org/licenses/mit-license
 * Author: Owen Leong (@owenl131)
 * Date: 15 Oct 2020
 * References:
 * https://www.cs.cmu.edu/~dst/Adobe/Gallery/anon21jul01-pdf-encryption.txt
 * https://github.com/foliojs/pdfkit/blob/master/lib/security.js
 * http://www.fpdf.org/en/script/script37.php
 */
var hf = { print: 4, modify: 8, copy: 16, "annot-forms": 32 };
function ii(t, e, A, r) {
  this.v = 1, this.r = 2;
  var n = 192;
  t.forEach(function(o) {
    if (hf.perm !== void 0) throw new Error("Invalid permission: " + o);
    n += hf[o];
  }), this.padding = "(¿N^NuŠAd\0NVÿú\b..\0¶Ðh>€/\f©þdSiz";
  var s = (e + this.padding).substr(0, 32), a = (A + this.padding).substr(0, 32);
  this.O = this.processOwnerPassword(s, a), this.P = -(1 + (255 ^ n)), this.encryptionKey = jc(s + this.O + this.lsbFirstWord(this.P) + this.hexToBytes(r)).substr(0, 5), this.U = qc(this.encryptionKey, this.padding);
}
function ai(t) {
  if (/[^\u0000-\u00ff]/.test(t)) throw new Error("Invalid PDF Name Object: " + t + ", Only accept ASCII characters.");
  for (var e = "", A = t.length, r = 0; r < A; r++) {
    var n = t.charCodeAt(r);
    n < 33 || n === 35 || n === 37 || n === 40 || n === 41 || n === 47 || n === 60 || n === 62 || n === 91 || n === 93 || n === 123 || n === 125 || n > 126 ? e += "#" + ("0" + n.toString(16)).slice(-2) : e += t[r];
  }
  return e;
}
function gf(t) {
  if (et(t) !== "object") throw new Error("Invalid Context passed to initialize PubSub (jsPDF-module)");
  var e = {};
  this.subscribe = function(A, r, n) {
    if (n = n || !1, typeof A != "string" || typeof r != "function" || typeof n != "boolean") throw new Error("Invalid arguments passed to PubSub.subscribe (jsPDF-module)");
    e.hasOwnProperty(A) || (e[A] = {});
    var s = Math.random().toString(35);
    return e[A][s] = [r, !!n], s;
  }, this.unsubscribe = function(A) {
    for (var r in e) if (e[r][A]) return delete e[r][A], Object.keys(e[r]).length === 0 && delete e[r], !0;
    return !1;
  }, this.publish = function(A) {
    if (e.hasOwnProperty(A)) {
      var r = Array.prototype.slice.call(arguments, 1), n = [];
      for (var s in e[A]) {
        var a = e[A][s];
        try {
          a[0].apply(t, r);
        } catch (o) {
          Qe.console && ot.error("jsPDF PubSub Error", o.message, o);
        }
        a[1] && n.push(s);
      }
      n.length && n.forEach(this.unsubscribe);
    }
  }, this.getTopics = function() {
    return e;
  };
}
function Xo(t) {
  if (!(this instanceof Xo)) return new Xo(t);
  var e = "opacity,stroke-opacity".split(",");
  for (var A in t) t.hasOwnProperty(A) && e.indexOf(A) >= 0 && (this[A] = t[A]);
  this.id = "", this.objectNumber = -1;
}
function Vd(t, e) {
  this.gState = t, this.matrix = e, this.id = "", this.objectNumber = -1;
}
function ms(t, e, A, r, n) {
  if (!(this instanceof ms)) return new ms(t, e, A, r, n);
  this.type = t === "axial" ? 2 : 3, this.coords = e, this.colors = A, Vd.call(this, r, n);
}
function ci(t, e, A, r, n) {
  if (!(this instanceof ci)) return new ci(t, e, A, r, n);
  this.boundingBox = t, this.xStep = e, this.yStep = A, this.stream = "", this.cloneIndex = 0, Vd.call(this, r, n);
}
function Fe(t) {
  var e, A = typeof arguments[0] == "string" ? arguments[0] : "p", r = arguments[1], n = arguments[2], s = arguments[3], a = [], o = 1, c = 16, d = "S", h = null;
  et(t = t || {}) === "object" && (A = t.orientation, r = t.unit || r, n = t.format || n, s = t.compress || t.compressPdf || s, (h = t.encryption || null) !== null && (h.userPassword = h.userPassword || "", h.ownerPassword = h.ownerPassword || "", h.userPermissions = h.userPermissions || []), o = typeof t.userUnit == "number" ? Math.abs(t.userUnit) : 1, t.precision !== void 0 && (e = t.precision), t.floatPrecision !== void 0 && (c = t.floatPrecision), d = t.defaultPathOperation || "S"), a = t.filters || (s === !0 ? ["FlateEncode"] : a), r = r || "mm", A = ("" + (A || "P")).toLowerCase();
  var g = t.putOnlyUsedFonts || !1, w = {}, p = { internal: {}, __private__: {} };
  p.__private__.PubSub = gf;
  var m = "1.3", F = p.__private__.getPdfVersion = function() {
    return m;
  };
  p.__private__.setPdfVersion = function(u) {
    m = u;
  };
  var D = { a0: [2383.94, 3370.39], a1: [1683.78, 2383.94], a2: [1190.55, 1683.78], a3: [841.89, 1190.55], a4: [595.28, 841.89], a5: [419.53, 595.28], a6: [297.64, 419.53], a7: [209.76, 297.64], a8: [147.4, 209.76], a9: [104.88, 147.4], a10: [73.7, 104.88], b0: [2834.65, 4008.19], b1: [2004.09, 2834.65], b2: [1417.32, 2004.09], b3: [1000.63, 1417.32], b4: [708.66, 1000.63], b5: [498.9, 708.66], b6: [354.33, 498.9], b7: [249.45, 354.33], b8: [175.75, 249.45], b9: [124.72, 175.75], b10: [87.87, 124.72], c0: [2599.37, 3676.54], c1: [1836.85, 2599.37], c2: [1298.27, 1836.85], c3: [918.43, 1298.27], c4: [649.13, 918.43], c5: [459.21, 649.13], c6: [323.15, 459.21], c7: [229.61, 323.15], c8: [161.57, 229.61], c9: [113.39, 161.57], c10: [79.37, 113.39], dl: [311.81, 623.62], letter: [612, 792], "government-letter": [576, 756], legal: [612, 1008], "junior-legal": [576, 360], ledger: [1224, 792], tabloid: [792, 1224], "credit-card": [153, 243] };
  p.__private__.getPageFormats = function() {
    return D;
  };
  var v = p.__private__.getPageFormat = function(u) {
    return D[u];
  };
  n = n || "a4";
  var E = { COMPAT: "compat", ADVANCED: "advanced" }, P = E.COMPAT;
  function V() {
    this.saveGraphicsState(), G(new qA(RA, 0, 0, -RA, 0, kn() * RA).toString() + " cm"), this.setFontSize(this.getFontSize() / RA), d = "n", P = E.ADVANCED;
  }
  function J() {
    this.restoreGraphicsState(), d = "S", P = E.COMPAT;
  }
  var Y = p.__private__.combineFontStyleAndFontWeight = function(u, C) {
    if (u == "bold" && C == "normal" || u == "bold" && C == 400 || u == "normal" && C == "italic" || u == "bold" && C == "italic") throw new Error("Invalid Combination of fontweight and fontstyle");
    return C && (u = C == 400 || C === "normal" ? u === "italic" ? "italic" : "normal" : C != 700 && C !== "bold" || u !== "normal" ? (C == 700 ? "bold" : C) + "" + u : "bold"), u;
  };
  p.advancedAPI = function(u) {
    var C = P === E.COMPAT;
    return C && V.call(this), typeof u != "function" || (u(this), C && J.call(this)), this;
  }, p.compatAPI = function(u) {
    var C = P === E.ADVANCED;
    return C && J.call(this), typeof u != "function" || (u(this), C && V.call(this)), this;
  }, p.isAdvancedAPI = function() {
    return P === E.ADVANCED;
  };
  var W, O = function(u) {
    if (P !== E.ADVANCED) throw new Error(u + " is only available in 'advanced' API mode. You need to call advancedAPI() first.");
  }, q = p.roundToPrecision = p.__private__.roundToPrecision = function(u, C) {
    var K = e || C;
    if (isNaN(u) || isNaN(K)) throw new Error("Invalid argument passed to jsPDF.roundToPrecision");
    return u.toFixed(K).replace(/0+$/, "");
  };
  W = p.hpf = p.__private__.hpf = typeof c == "number" ? function(u) {
    if (isNaN(u)) throw new Error("Invalid argument passed to jsPDF.hpf");
    return q(u, c);
  } : c === "smart" ? function(u) {
    if (isNaN(u)) throw new Error("Invalid argument passed to jsPDF.hpf");
    return q(u, u > -1 && u < 1 ? 16 : 5);
  } : function(u) {
    if (isNaN(u)) throw new Error("Invalid argument passed to jsPDF.hpf");
    return q(u, 16);
  };
  var lA = p.f2 = p.__private__.f2 = function(u) {
    if (isNaN(u)) throw new Error("Invalid argument passed to jsPDF.f2");
    return q(u, 2);
  }, I = p.__private__.f3 = function(u) {
    if (isNaN(u)) throw new Error("Invalid argument passed to jsPDF.f3");
    return q(u, 3);
  }, Q = p.scale = p.__private__.scale = function(u) {
    if (isNaN(u)) throw new Error("Invalid argument passed to jsPDF.scale");
    return P === E.COMPAT ? u * RA : P === E.ADVANCED ? u : void 0;
  }, k = function(u) {
    return P === E.COMPAT ? kn() - u : P === E.ADVANCED ? u : void 0;
  }, U = function(u) {
    return Q(k(u));
  };
  p.__private__.setPrecision = p.setPrecision = function(u) {
    typeof parseInt(u, 10) == "number" && (e = parseInt(u, 10));
  };
  var R, X = "00000000000000000000000000000000", AA = p.__private__.getFileId = function() {
    return X;
  }, z = p.__private__.setFileId = function(u) {
    return X = u !== void 0 && /^[a-fA-F0-9]{32}$/.test(u) ? u.toUpperCase() : X.split("").map(function() {
      return "ABCDEF0123456789".charAt(Math.floor(16 * Math.random()));
    }).join(""), h !== null && (zt = new ii(h.userPermissions, h.userPassword, h.ownerPassword, X)), X;
  };
  p.setFileId = function(u) {
    return z(u), this;
  }, p.getFileId = function() {
    return AA();
  };
  var aA = p.__private__.convertDateToPDFDate = function(u) {
    var C = u.getTimezoneOffset(), K = C < 0 ? "+" : "-", Z = Math.floor(Math.abs(C / 60)), fA = Math.abs(C % 60), SA = [K, _(Z), "'", _(fA), "'"].join("");
    return ["D:", u.getFullYear(), _(u.getMonth() + 1), _(u.getDate()), _(u.getHours()), _(u.getMinutes()), _(u.getSeconds()), SA].join("");
  }, rA = p.__private__.convertPDFDateToDate = function(u) {
    var C = parseInt(u.substr(2, 4), 10), K = parseInt(u.substr(6, 2), 10) - 1, Z = parseInt(u.substr(8, 2), 10), fA = parseInt(u.substr(10, 2), 10), SA = parseInt(u.substr(12, 2), 10), GA = parseInt(u.substr(14, 2), 10);
    return new Date(C, K, Z, fA, SA, GA, 0);
  }, QA = p.__private__.setCreationDate = function(u) {
    var C;
    if (u === void 0 && (u = /* @__PURE__ */ new Date()), u instanceof Date) C = aA(u);
    else {
      if (!/^D:(20[0-2][0-9]|203[0-7]|19[7-9][0-9])(0[0-9]|1[0-2])([0-2][0-9]|3[0-1])(0[0-9]|1[0-9]|2[0-3])(0[0-9]|[1-5][0-9])(0[0-9]|[1-5][0-9])(\+0[0-9]|\+1[0-4]|-0[0-9]|-1[0-1])'(0[0-9]|[1-5][0-9])'?$/.test(u)) throw new Error("Invalid argument passed to jsPDF.setCreationDate");
      C = u;
    }
    return R = C;
  }, b = p.__private__.getCreationDate = function(u) {
    var C = R;
    return u === "jsDate" && (C = rA(R)), C;
  };
  p.setCreationDate = function(u) {
    return QA(u), this;
  }, p.getCreationDate = function(u) {
    return b(u);
  };
  var T, _ = p.__private__.padd2 = function(u) {
    return ("0" + parseInt(u)).slice(-2);
  }, j = p.__private__.padd2Hex = function(u) {
    return ("00" + (u = u.toString())).substr(u.length);
  }, $ = 0, uA = [], hA = [], mA = 0, jA = [], VA = [], YA = !1, nA = hA, UA = function() {
    $ = 0, mA = 0, hA = [], uA = [], jA = [], lr = rt(), Xt = rt();
  };
  p.__private__.setCustomOutputDestination = function(u) {
    YA = !0, nA = u;
  };
  var yA = function(u) {
    YA || (nA = u);
  };
  p.__private__.resetCustomOutputDestination = function() {
    YA = !1, nA = hA;
  };
  var G = p.__private__.out = function(u) {
    return u = u.toString(), mA += u.length + 1, nA.push(u), nA;
  }, CA = p.__private__.write = function(u) {
    return G(arguments.length === 1 ? u.toString() : Array.prototype.join.call(arguments, " "));
  }, DA = p.__private__.getArrayBuffer = function(u) {
    for (var C = u.length, K = new ArrayBuffer(C), Z = new Uint8Array(K); C--; ) Z[C] = u.charCodeAt(C);
    return K;
  }, cA = [["Helvetica", "helvetica", "normal", "WinAnsiEncoding"], ["Helvetica-Bold", "helvetica", "bold", "WinAnsiEncoding"], ["Helvetica-Oblique", "helvetica", "italic", "WinAnsiEncoding"], ["Helvetica-BoldOblique", "helvetica", "bolditalic", "WinAnsiEncoding"], ["Courier", "courier", "normal", "WinAnsiEncoding"], ["Courier-Bold", "courier", "bold", "WinAnsiEncoding"], ["Courier-Oblique", "courier", "italic", "WinAnsiEncoding"], ["Courier-BoldOblique", "courier", "bolditalic", "WinAnsiEncoding"], ["Times-Roman", "times", "normal", "WinAnsiEncoding"], ["Times-Bold", "times", "bold", "WinAnsiEncoding"], ["Times-Italic", "times", "italic", "WinAnsiEncoding"], ["Times-BoldItalic", "times", "bolditalic", "WinAnsiEncoding"], ["ZapfDingbats", "zapfdingbats", "normal", null], ["Symbol", "symbol", "normal", null]];
  p.__private__.getStandardFonts = function() {
    return cA;
  };
  var HA = t.fontSize || 16;
  p.__private__.setFontSize = p.setFontSize = function(u) {
    return HA = P === E.ADVANCED ? u / RA : u, this;
  };
  var XA, OA = p.__private__.getFontSize = p.getFontSize = function() {
    return P === E.COMPAT ? HA : HA * RA;
  }, ZA = t.R2L || !1;
  p.__private__.setR2L = p.setR2L = function(u) {
    return ZA = u, this;
  }, p.__private__.getR2L = p.getR2L = function() {
    return ZA;
  };
  var sA, bA = p.__private__.setZoomMode = function(u) {
    var C = [void 0, null, "fullwidth", "fullheight", "fullpage", "original"];
    if (/^(?:\d+\.\d*|\d*\.\d+|\d+)%$/.test(u)) XA = u;
    else if (isNaN(u)) {
      if (C.indexOf(u) === -1) throw new Error('zoom must be Integer (e.g. 2), a percentage Value (e.g. 300%) or fullwidth, fullheight, fullpage, original. "' + u + '" is not recognized.');
      XA = u;
    } else XA = parseInt(u, 10);
  };
  p.__private__.getZoomMode = function() {
    return XA;
  };
  var PA, te = p.__private__.setPageMode = function(u) {
    if ([void 0, null, "UseNone", "UseOutlines", "UseThumbs", "FullScreen"].indexOf(u) == -1) throw new Error('Page mode must be one of UseNone, UseOutlines, UseThumbs, or FullScreen. "' + u + '" is not recognized.');
    sA = u;
  };
  p.__private__.getPageMode = function() {
    return sA;
  };
  var he = p.__private__.setLayoutMode = function(u) {
    if ([void 0, null, "continuous", "single", "twoleft", "tworight", "two"].indexOf(u) == -1) throw new Error('Layout mode must be one of continuous, single, twoleft, tworight. "' + u + '" is not recognized.');
    PA = u;
  };
  p.__private__.getLayoutMode = function() {
    return PA;
  }, p.__private__.setDisplayMode = p.setDisplayMode = function(u, C, K) {
    return bA(u), he(C), te(K), this;
  };
  var re = { title: "", subject: "", author: "", keywords: "", creator: "" };
  p.__private__.getDocumentProperty = function(u) {
    if (Object.keys(re).indexOf(u) === -1) throw new Error("Invalid argument passed to jsPDF.getDocumentProperty");
    return re[u];
  }, p.__private__.getDocumentProperties = function() {
    return re;
  }, p.__private__.setDocumentProperties = p.setProperties = p.setDocumentProperties = function(u) {
    for (var C in re) re.hasOwnProperty(C) && u[C] && (re[C] = u[C]);
    return this;
  }, p.__private__.setDocumentProperty = function(u, C) {
    if (Object.keys(re).indexOf(u) === -1) throw new Error("Invalid arguments passed to jsPDF.setDocumentProperty");
    return re[u] = C;
  };
  var ce, RA, Pe, Ce, tt, Ue = {}, ke = {}, mt = [], Se = {}, xt = {}, gA = {}, _A = {}, Ae = null, JA = 0, LA = [], ae = new gf(p), He = t.hotfixes || [], ve = {}, $A = {}, ee = [], qA = function u(C, K, Z, fA, SA, GA) {
    if (!(this instanceof u)) return new u(C, K, Z, fA, SA, GA);
    isNaN(C) && (C = 1), isNaN(K) && (K = 0), isNaN(Z) && (Z = 0), isNaN(fA) && (fA = 1), isNaN(SA) && (SA = 0), isNaN(GA) && (GA = 0), this._matrix = [C, K, Z, fA, SA, GA];
  };
  Object.defineProperty(qA.prototype, "sx", { get: function() {
    return this._matrix[0];
  }, set: function(u) {
    this._matrix[0] = u;
  } }), Object.defineProperty(qA.prototype, "shy", { get: function() {
    return this._matrix[1];
  }, set: function(u) {
    this._matrix[1] = u;
  } }), Object.defineProperty(qA.prototype, "shx", { get: function() {
    return this._matrix[2];
  }, set: function(u) {
    this._matrix[2] = u;
  } }), Object.defineProperty(qA.prototype, "sy", { get: function() {
    return this._matrix[3];
  }, set: function(u) {
    this._matrix[3] = u;
  } }), Object.defineProperty(qA.prototype, "tx", { get: function() {
    return this._matrix[4];
  }, set: function(u) {
    this._matrix[4] = u;
  } }), Object.defineProperty(qA.prototype, "ty", { get: function() {
    return this._matrix[5];
  }, set: function(u) {
    this._matrix[5] = u;
  } }), Object.defineProperty(qA.prototype, "a", { get: function() {
    return this._matrix[0];
  }, set: function(u) {
    this._matrix[0] = u;
  } }), Object.defineProperty(qA.prototype, "b", { get: function() {
    return this._matrix[1];
  }, set: function(u) {
    this._matrix[1] = u;
  } }), Object.defineProperty(qA.prototype, "c", { get: function() {
    return this._matrix[2];
  }, set: function(u) {
    this._matrix[2] = u;
  } }), Object.defineProperty(qA.prototype, "d", { get: function() {
    return this._matrix[3];
  }, set: function(u) {
    this._matrix[3] = u;
  } }), Object.defineProperty(qA.prototype, "e", { get: function() {
    return this._matrix[4];
  }, set: function(u) {
    this._matrix[4] = u;
  } }), Object.defineProperty(qA.prototype, "f", { get: function() {
    return this._matrix[5];
  }, set: function(u) {
    this._matrix[5] = u;
  } }), Object.defineProperty(qA.prototype, "rotation", { get: function() {
    return Math.atan2(this.shx, this.sx);
  } }), Object.defineProperty(qA.prototype, "scaleX", { get: function() {
    return this.decompose().scale.sx;
  } }), Object.defineProperty(qA.prototype, "scaleY", { get: function() {
    return this.decompose().scale.sy;
  } }), Object.defineProperty(qA.prototype, "isIdentity", { get: function() {
    return this.sx === 1 && this.shy === 0 && this.shx === 0 && this.sy === 1 && this.tx === 0 && this.ty === 0;
  } }), qA.prototype.join = function(u) {
    return [this.sx, this.shy, this.shx, this.sy, this.tx, this.ty].map(W).join(u);
  }, qA.prototype.multiply = function(u) {
    var C = u.sx * this.sx + u.shy * this.shx, K = u.sx * this.shy + u.shy * this.sy, Z = u.shx * this.sx + u.sy * this.shx, fA = u.shx * this.shy + u.sy * this.sy, SA = u.tx * this.sx + u.ty * this.shx + this.tx, GA = u.tx * this.shy + u.ty * this.sy + this.ty;
    return new qA(C, K, Z, fA, SA, GA);
  }, qA.prototype.decompose = function() {
    var u = this.sx, C = this.shy, K = this.shx, Z = this.sy, fA = this.tx, SA = this.ty, GA = Math.sqrt(u * u + C * C), le = (u /= GA) * K + (C /= GA) * Z;
    K -= u * le, Z -= C * le;
    var ye = Math.sqrt(K * K + Z * Z);
    return le /= ye, u * (Z /= ye) < C * (K /= ye) && (u = -u, C = -C, le = -le, GA = -GA), { scale: new qA(GA, 0, 0, ye, 0, 0), translate: new qA(1, 0, 0, 1, fA, SA), rotate: new qA(u, C, -C, u, 0, 0), skew: new qA(1, 0, le, 1, 0, 0) };
  }, qA.prototype.toString = function(u) {
    return this.join(" ");
  }, qA.prototype.inversed = function() {
    var u = this.sx, C = this.shy, K = this.shx, Z = this.sy, fA = this.tx, SA = this.ty, GA = 1 / (u * Z - C * K), le = Z * GA, ye = -C * GA, Ie = -K * GA, Ee = u * GA;
    return new qA(le, ye, Ie, Ee, -le * fA - Ie * SA, -ye * fA - Ee * SA);
  }, qA.prototype.applyToPoint = function(u) {
    var C = u.x * this.sx + u.y * this.shx + this.tx, K = u.x * this.shy + u.y * this.sy + this.ty;
    return new Ts(C, K);
  }, qA.prototype.applyToRectangle = function(u) {
    var C = this.applyToPoint(u), K = this.applyToPoint(new Ts(u.x + u.w, u.y + u.h));
    return new xi(C.x, C.y, K.x - C.x, K.y - C.y);
  }, qA.prototype.clone = function() {
    var u = this.sx, C = this.shy, K = this.shx, Z = this.sy, fA = this.tx, SA = this.ty;
    return new qA(u, C, K, Z, fA, SA);
  }, p.Matrix = qA;
  var Ne = p.matrixMult = function(u, C) {
    return C.multiply(u);
  }, it = new qA(1, 0, 0, 1, 0, 0);
  p.unitMatrix = p.identityMatrix = it;
  var ze = function(u, C) {
    if (!xt[u]) {
      var K = (C instanceof ms ? "Sh" : "P") + (Object.keys(Se).length + 1).toString(10);
      C.id = K, xt[u] = K, Se[K] = C, ae.publish("addPattern", C);
    }
  };
  p.ShadingPattern = ms, p.TilingPattern = ci, p.addShadingPattern = function(u, C) {
    return O("addShadingPattern()"), ze(u, C), this;
  }, p.beginTilingPattern = function(u) {
    O("beginTilingPattern()"), Na(u.boundingBox[0], u.boundingBox[1], u.boundingBox[2] - u.boundingBox[0], u.boundingBox[3] - u.boundingBox[1], u.matrix);
  }, p.endTilingPattern = function(u, C) {
    O("endTilingPattern()"), C.stream = VA[T].join(`
`), ze(u, C), ae.publish("endTilingPattern", C), ee.pop().restore();
  };
  var qe = p.__private__.newObject = function() {
    var u = rt();
    return _t(u, !0), u;
  }, rt = p.__private__.newObjectDeferred = function() {
    return $++, uA[$] = function() {
      return mA;
    }, $;
  }, _t = function(u, C) {
    return C = typeof C == "boolean" && C, uA[u] = mA, C && G(u + " 0 obj"), u;
  }, Gr = p.__private__.newAdditionalObject = function() {
    var u = { objId: rt(), content: "" };
    return jA.push(u), u;
  }, lr = rt(), Xt = rt(), nr = p.__private__.decodeColorString = function(u) {
    var C = u.split(" ");
    if (C.length !== 2 || C[1] !== "g" && C[1] !== "G")
      C.length === 5 && (C[4] === "k" || C[4] === "K") && (C = [(1 - C[0]) * (1 - C[3]), (1 - C[1]) * (1 - C[3]), (1 - C[2]) * (1 - C[3]), "r"]);
    else {
      var K = parseFloat(C[0]);
      C = [K, K, K, "r"];
    }
    for (var Z = "#", fA = 0; fA < 3; fA++) Z += ("0" + Math.floor(255 * parseFloat(C[fA])).toString(16)).slice(-2);
    return Z;
  }, Vt = p.__private__.encodeColorString = function(u) {
    var C;
    typeof u == "string" && (u = { ch1: u });
    var K = u.ch1, Z = u.ch2, fA = u.ch3, SA = u.ch4, GA = u.pdfColorType === "draw" ? ["G", "RG", "K"] : ["g", "rg", "k"];
    if (typeof K == "string" && K.charAt(0) !== "#") {
      var le = new Rd(K);
      if (le.ok) K = le.toHex();
      else if (!/^\d*\.?\d*$/.test(K)) throw new Error('Invalid color "' + K + '" passed to jsPDF.encodeColorString.');
    }
    if (typeof K == "string" && /^#[0-9A-Fa-f]{3}$/.test(K) && (K = "#" + K[1] + K[1] + K[2] + K[2] + K[3] + K[3]), typeof K == "string" && /^#[0-9A-Fa-f]{6}$/.test(K)) {
      var ye = parseInt(K.substr(1), 16);
      K = ye >> 16 & 255, Z = ye >> 8 & 255, fA = 255 & ye;
    }
    if (Z === void 0 || SA === void 0 && K === Z && Z === fA) if (typeof K == "string") C = K + " " + GA[0];
    else switch (u.precision) {
      case 2:
        C = lA(K / 255) + " " + GA[0];
        break;
      case 3:
      default:
        C = I(K / 255) + " " + GA[0];
    }
    else if (SA === void 0 || et(SA) === "object") {
      if (SA && !isNaN(SA.a) && SA.a === 0) return C = ["1.", "1.", "1.", GA[1]].join(" ");
      if (typeof K == "string") C = [K, Z, fA, GA[1]].join(" ");
      else switch (u.precision) {
        case 2:
          C = [lA(K / 255), lA(Z / 255), lA(fA / 255), GA[1]].join(" ");
          break;
        default:
        case 3:
          C = [I(K / 255), I(Z / 255), I(fA / 255), GA[1]].join(" ");
      }
    } else if (typeof K == "string") C = [K, Z, fA, SA, GA[2]].join(" ");
    else switch (u.precision) {
      case 2:
        C = [lA(K), lA(Z), lA(fA), lA(SA), GA[2]].join(" ");
        break;
      case 3:
      default:
        C = [I(K), I(Z), I(fA), I(SA), GA[2]].join(" ");
    }
    return C;
  }, cr = p.__private__.getFilters = function() {
    return a;
  }, vA = p.__private__.putStream = function(u) {
    var C = (u = u || {}).data || "", K = u.filters || cr(), Z = u.alreadyAppliedFilters || [], fA = u.addLength1 || !1, SA = C.length, GA = u.objectId, le = function(Yt) {
      return Yt;
    };
    if (h !== null && GA === void 0) throw new Error("ObjectId must be passed to putStream for file encryption");
    h !== null && (le = zt.encryptor(GA, 0));
    var ye = {};
    K === !0 && (K = ["FlateEncode"]);
    var Ie = u.additionalKeyValues || [], Ee = (ye = Fe.API.processDataByFilters !== void 0 ? Fe.API.processDataByFilters(C, K) : { data: C, reverseChain: [] }).reverseChain + (Array.isArray(Z) ? Z.join(" ") : Z.toString());
    if (ye.data.length !== 0 && (Ie.push({ key: "Length", value: ye.data.length }), fA === !0 && Ie.push({ key: "Length1", value: SA })), Ee.length != 0) if (Ee.split("/").length - 1 == 1) Ie.push({ key: "Filter", value: Ee });
    else {
      Ie.push({ key: "Filter", value: "[" + Ee + "]" });
      for (var Ge = 0; Ge < Ie.length; Ge += 1) if (Ie[Ge].key === "DecodeParms") {
        for (var gt = [], Bt = 0; Bt < ye.reverseChain.split("/").length - 1; Bt += 1) gt.push("null");
        gt.push(Ie[Ge].value), Ie[Ge].value = "[" + gt.join(" ") + "]";
      }
    }
    G("<<");
    for (var It = 0; It < Ie.length; It++) G("/" + Ie[It].key + " " + Ie[It].value);
    G(">>"), ye.data.length !== 0 && (G("stream"), G(le(ye.data)), G("endstream"));
  }, xA = p.__private__.putPage = function(u) {
    var C = u.number, K = u.data, Z = u.objId, fA = u.contentsObjId;
    _t(Z, !0), G("<</Type /Page"), G("/Parent " + u.rootDictionaryObjId + " 0 R"), G("/Resources " + u.resourceDictionaryObjId + " 0 R"), G("/MediaBox [" + parseFloat(W(u.mediaBox.bottomLeftX)) + " " + parseFloat(W(u.mediaBox.bottomLeftY)) + " " + W(u.mediaBox.topRightX) + " " + W(u.mediaBox.topRightY) + "]"), u.cropBox !== null && G("/CropBox [" + W(u.cropBox.bottomLeftX) + " " + W(u.cropBox.bottomLeftY) + " " + W(u.cropBox.topRightX) + " " + W(u.cropBox.topRightY) + "]"), u.bleedBox !== null && G("/BleedBox [" + W(u.bleedBox.bottomLeftX) + " " + W(u.bleedBox.bottomLeftY) + " " + W(u.bleedBox.topRightX) + " " + W(u.bleedBox.topRightY) + "]"), u.trimBox !== null && G("/TrimBox [" + W(u.trimBox.bottomLeftX) + " " + W(u.trimBox.bottomLeftY) + " " + W(u.trimBox.topRightX) + " " + W(u.trimBox.topRightY) + "]"), u.artBox !== null && G("/ArtBox [" + W(u.artBox.bottomLeftX) + " " + W(u.artBox.bottomLeftY) + " " + W(u.artBox.topRightX) + " " + W(u.artBox.topRightY) + "]"), typeof u.userUnit == "number" && u.userUnit !== 1 && G("/UserUnit " + u.userUnit), ae.publish("putPage", { objId: Z, pageContext: LA[C], pageNumber: C, page: K }), G("/Contents " + fA + " 0 R"), G(">>"), G("endobj");
    var SA = K.join(`
`);
    return P === E.ADVANCED && (SA += `
Q`), _t(fA, !0), vA({ data: SA, filters: cr(), objectId: fA }), G("endobj"), Z;
  }, dA = p.__private__.putPages = function() {
    var u, C, K = [];
    for (u = 1; u <= JA; u++) LA[u].objId = rt(), LA[u].contentsObjId = rt();
    for (u = 1; u <= JA; u++) K.push(xA({ number: u, data: VA[u], objId: LA[u].objId, contentsObjId: LA[u].contentsObjId, mediaBox: LA[u].mediaBox, cropBox: LA[u].cropBox, bleedBox: LA[u].bleedBox, trimBox: LA[u].trimBox, artBox: LA[u].artBox, userUnit: LA[u].userUnit, rootDictionaryObjId: lr, resourceDictionaryObjId: Xt }));
    _t(lr, !0), G("<</Type /Pages");
    var Z = "/Kids [";
    for (C = 0; C < JA; C++) Z += K[C] + " 0 R ";
    G(Z + "]"), G("/Count " + JA), G(">>"), G("endobj"), ae.publish("postPutPages");
  }, zA = function(u) {
    ae.publish("putFont", { font: u, out: G, newObject: qe, putStream: vA }), u.isAlreadyPutted !== !0 && (u.objectNumber = qe(), G("<<"), G("/Type /Font"), G("/BaseFont /" + ai(u.postScriptName)), G("/Subtype /Type1"), typeof u.encoding == "string" && G("/Encoding /" + u.encoding), G("/FirstChar 32"), G("/LastChar 255"), G(">>"), G("endobj"));
  }, ne = function() {
    for (var u in Ue) Ue.hasOwnProperty(u) && (g === !1 || g === !0 && w.hasOwnProperty(u)) && zA(Ue[u]);
  }, WA = function(u) {
    u.objectNumber = qe();
    var C = [];
    C.push({ key: "Type", value: "/XObject" }), C.push({ key: "Subtype", value: "/Form" }), C.push({ key: "BBox", value: "[" + [W(u.x), W(u.y), W(u.x + u.width), W(u.y + u.height)].join(" ") + "]" }), C.push({ key: "Matrix", value: "[" + u.matrix.toString() + "]" });
    var K = u.pages[1].join(`
`);
    vA({ data: K, additionalKeyValues: C, objectId: u.objectNumber }), G("endobj");
  }, we = function() {
    for (var u in ve) ve.hasOwnProperty(u) && WA(ve[u]);
  }, _e = function(u, C) {
    var K, Z = [], fA = 1 / (C - 1);
    for (K = 0; K < 1; K += fA) Z.push(K);
    if (Z.push(1), u[0].offset != 0) {
      var SA = { offset: 0, color: u[0].color };
      u.unshift(SA);
    }
    if (u[u.length - 1].offset != 1) {
      var GA = { offset: 1, color: u[u.length - 1].color };
      u.push(GA);
    }
    for (var le = "", ye = 0, Ie = 0; Ie < Z.length; Ie++) {
      for (K = Z[Ie]; K > u[ye + 1].offset; ) ye++;
      var Ee = u[ye].offset, Ge = (K - Ee) / (u[ye + 1].offset - Ee), gt = u[ye].color, Bt = u[ye + 1].color;
      le += j(Math.round((1 - Ge) * gt[0] + Ge * Bt[0]).toString(16)) + j(Math.round((1 - Ge) * gt[1] + Ge * Bt[1]).toString(16)) + j(Math.round((1 - Ge) * gt[2] + Ge * Bt[2]).toString(16));
    }
    return le.trim();
  }, me = function(u, C) {
    C || (C = 21);
    var K = qe(), Z = _e(u.colors, C), fA = [];
    fA.push({ key: "FunctionType", value: "0" }), fA.push({ key: "Domain", value: "[0.0 1.0]" }), fA.push({ key: "Size", value: "[" + C + "]" }), fA.push({ key: "BitsPerSample", value: "8" }), fA.push({ key: "Range", value: "[0.0 1.0 0.0 1.0 0.0 1.0]" }), fA.push({ key: "Decode", value: "[0.0 1.0 0.0 1.0 0.0 1.0]" }), vA({ data: Z, additionalKeyValues: fA, alreadyAppliedFilters: ["/ASCIIHexDecode"], objectId: K }), G("endobj"), u.objectNumber = qe(), G("<< /ShadingType " + u.type), G("/ColorSpace /DeviceRGB");
    var SA = "/Coords [" + W(parseFloat(u.coords[0])) + " " + W(parseFloat(u.coords[1])) + " ";
    u.type === 2 ? SA += W(parseFloat(u.coords[2])) + " " + W(parseFloat(u.coords[3])) : SA += W(parseFloat(u.coords[2])) + " " + W(parseFloat(u.coords[3])) + " " + W(parseFloat(u.coords[4])) + " " + W(parseFloat(u.coords[5])), G(SA += "]"), u.matrix && G("/Matrix [" + u.matrix.toString() + "]"), G("/Function " + K + " 0 R"), G("/Extend [true true]"), G(">>"), G("endobj");
  }, Te = function(u, C) {
    var K = rt(), Z = qe();
    C.push({ resourcesOid: K, objectOid: Z }), u.objectNumber = Z;
    var fA = [];
    fA.push({ key: "Type", value: "/Pattern" }), fA.push({ key: "PatternType", value: "1" }), fA.push({ key: "PaintType", value: "1" }), fA.push({ key: "TilingType", value: "1" }), fA.push({ key: "BBox", value: "[" + u.boundingBox.map(W).join(" ") + "]" }), fA.push({ key: "XStep", value: W(u.xStep) }), fA.push({ key: "YStep", value: W(u.yStep) }), fA.push({ key: "Resources", value: K + " 0 R" }), u.matrix && fA.push({ key: "Matrix", value: "[" + u.matrix.toString() + "]" }), vA({ data: u.stream, additionalKeyValues: fA, objectId: u.objectNumber }), G("endobj");
  }, Ke = function(u) {
    var C;
    for (C in Se) Se.hasOwnProperty(C) && (Se[C] instanceof ms ? me(Se[C]) : Se[C] instanceof ci && Te(Se[C], u));
  }, Cr = function(u) {
    for (var C in u.objectNumber = qe(), G("<<"), u) switch (C) {
      case "opacity":
        G("/ca " + lA(u[C]));
        break;
      case "stroke-opacity":
        G("/CA " + lA(u[C]));
    }
    G(">>"), G("endobj");
  }, vi = function() {
    var u;
    for (u in gA) gA.hasOwnProperty(u) && Cr(gA[u]);
  }, is = function() {
    for (var u in G("/XObject <<"), ve) ve.hasOwnProperty(u) && ve[u].objectNumber >= 0 && G("/" + u + " " + ve[u].objectNumber + " 0 R");
    ae.publish("putXobjectDict"), G(">>");
  }, ma = function() {
    zt.oid = qe(), G("<<"), G("/Filter /Standard"), G("/V " + zt.v), G("/R " + zt.r), G("/U <" + zt.toHexString(zt.U) + ">"), G("/O <" + zt.toHexString(zt.O) + ">"), G("/P " + zt.P), G(">>"), G("endobj");
  }, Ls = function() {
    for (var u in G("/Font <<"), Ue) Ue.hasOwnProperty(u) && (g === !1 || g === !0 && w.hasOwnProperty(u)) && G("/" + u + " " + Ue[u].objectNumber + " 0 R");
    G(">>");
  }, ml = function() {
    if (Object.keys(Se).length > 0) {
      for (var u in G("/Shading <<"), Se) Se.hasOwnProperty(u) && Se[u] instanceof ms && Se[u].objectNumber >= 0 && G("/" + u + " " + Se[u].objectNumber + " 0 R");
      ae.publish("putShadingPatternDict"), G(">>");
    }
  }, Es = function(u) {
    if (Object.keys(Se).length > 0) {
      for (var C in G("/Pattern <<"), Se) Se.hasOwnProperty(C) && Se[C] instanceof p.TilingPattern && Se[C].objectNumber >= 0 && Se[C].objectNumber < u && G("/" + C + " " + Se[C].objectNumber + " 0 R");
      ae.publish("putTilingPatternDict"), G(">>");
    }
  }, yl = function() {
    if (Object.keys(gA).length > 0) {
      var u;
      for (u in G("/ExtGState <<"), gA) gA.hasOwnProperty(u) && gA[u].objectNumber >= 0 && G("/" + u + " " + gA[u].objectNumber + " 0 R");
      ae.publish("putGStateDict"), G(">>");
    }
  }, yt = function(u) {
    _t(u.resourcesOid, !0), G("<<"), G("/ProcSet [/PDF /Text /ImageB /ImageC /ImageI]"), Ls(), ml(), Es(u.objectOid), yl(), is(), G(">>"), G("endobj");
  }, ya = function() {
    var u = [];
    ne(), vi(), we(), Ke(u), ae.publish("putResources"), u.forEach(yt), yt({ resourcesOid: Xt, objectOid: Number.MAX_SAFE_INTEGER }), ae.publish("postPutResources");
  }, Ca = function() {
    ae.publish("putAdditionalObjects");
    for (var u = 0; u < jA.length; u++) {
      var C = jA[u];
      _t(C.objId, !0), G(C.content), G("endobj");
    }
    ae.publish("postPutAdditionalObjects");
  }, ba = function(u) {
    ke[u.fontName] = ke[u.fontName] || {}, ke[u.fontName][u.fontStyle] = u.id;
  }, mi = function(u, C, K, Z, fA) {
    var SA = { id: "F" + (Object.keys(Ue).length + 1).toString(10), postScriptName: u, fontName: C, fontStyle: K, encoding: Z, isStandardFont: fA || !1, metadata: {} };
    return ae.publish("addFont", { font: SA, instance: this }), Ue[SA.id] = SA, ba(SA), SA.id;
  }, Cl = function(u) {
    for (var C = 0, K = cA.length; C < K; C++) {
      var Z = mi.call(this, u[C][0], u[C][1], u[C][2], cA[C][3], !0);
      g === !1 && (w[Z] = !0);
      var fA = u[C][0].split("-");
      ba({ id: Z, fontName: fA[0], fontStyle: fA[1] || "" });
    }
    ae.publish("addFonts", { fonts: Ue, dictionary: ke });
  }, jr = function(u) {
    return u.foo = function() {
      try {
        return u.apply(this, arguments);
      } catch (Z) {
        var C = Z.stack || "";
        ~C.indexOf(" at ") && (C = C.split(" at ")[1]);
        var K = "Error in function " + C.split(`
`)[0].split("<")[0] + ": " + Z.message;
        if (!Qe.console) throw new Error(K);
        Qe.console.error(K, Z), Qe.alert && alert(K);
      }
    }, u.foo.bar = u, u.foo;
  }, xs = function(u, C) {
    var K, Z, fA, SA, GA, le, ye, Ie, Ee;
    if (fA = (C = C || {}).sourceEncoding || "Unicode", GA = C.outputEncoding, (C.autoencode || GA) && Ue[ce].metadata && Ue[ce].metadata[fA] && Ue[ce].metadata[fA].encoding && (SA = Ue[ce].metadata[fA].encoding, !GA && Ue[ce].encoding && (GA = Ue[ce].encoding), !GA && SA.codePages && (GA = SA.codePages[0]), typeof GA == "string" && (GA = SA[GA]), GA)) {
      for (ye = !1, le = [], K = 0, Z = u.length; K < Z; K++) (Ie = GA[u.charCodeAt(K)]) ? le.push(String.fromCharCode(Ie)) : le.push(u[K]), le[K].charCodeAt(0) >> 8 && (ye = !0);
      u = le.join("");
    }
    for (K = u.length; ye === void 0 && K !== 0; ) u.charCodeAt(K - 1) >> 8 && (ye = !0), K--;
    if (!ye) return u;
    for (le = C.noBOM ? [] : [254, 255], K = 0, Z = u.length; K < Z; K++) {
      if ((Ee = (Ie = u.charCodeAt(K)) >> 8) >> 8) throw new Error("Character at position " + K + " of string '" + u + "' exceeds 16bits. Cannot be encoded into UCS-2 BE");
      le.push(Ee), le.push(Ie - (Ee << 8));
    }
    return String.fromCharCode.apply(void 0, le);
  }, ur = p.__private__.pdfEscape = p.pdfEscape = function(u, C) {
    return xs(u, C).replace(/\\/g, "\\\\").replace(/\(/g, "\\(").replace(/\)/g, "\\)");
  }, yi = p.__private__.beginPage = function(u) {
    VA[++JA] = [], LA[JA] = { objId: 0, contentsObjId: 0, userUnit: Number(o), artBox: null, bleedBox: null, cropBox: null, trimBox: null, mediaBox: { bottomLeftX: 0, bottomLeftY: 0, topRightX: Number(u[0]), topRightY: Number(u[1]) } }, Qa(JA), yA(VA[T]);
  }, Fa = function(u, C) {
    var K, Z, fA;
    switch (A = C || A, typeof u == "string" && (K = v(u.toLowerCase()), Array.isArray(K) && (Z = K[0], fA = K[1])), Array.isArray(u) && (Z = u[0] * RA, fA = u[1] * RA), isNaN(Z) && (Z = n[0], fA = n[1]), (Z > 14400 || fA > 14400) && (ot.warn("A page in a PDF can not be wider or taller than 14400 userUnit. jsPDF limits the width/height to 14400"), Z = Math.min(14400, Z), fA = Math.min(14400, fA)), n = [Z, fA], A.substr(0, 1)) {
      case "l":
        fA > Z && (n = [fA, Z]);
        break;
      case "p":
        Z > fA && (n = [fA, Z]);
    }
    yi(n), Sa(Qi), G(qr), Li !== 0 && G(Li + " J"), Ei !== 0 && G(Ei + " j"), ae.publish("addPage", { pageNumber: JA });
  }, bl = function(u) {
    u > 0 && u <= JA && (VA.splice(u, 1), LA.splice(u, 1), JA--, T > JA && (T = JA), this.setPage(T));
  }, Qa = function(u) {
    u > 0 && u <= JA && (T = u);
  }, Fl = p.__private__.getNumberOfPages = p.getNumberOfPages = function() {
    return VA.length - 1;
  }, Ua = function(u, C, K) {
    var Z, fA = void 0;
    return K = K || {}, u = u !== void 0 ? u : Ue[ce].fontName, C = C !== void 0 ? C : Ue[ce].fontStyle, Z = u.toLowerCase(), ke[Z] !== void 0 && ke[Z][C] !== void 0 ? fA = ke[Z][C] : ke[u] !== void 0 && ke[u][C] !== void 0 ? fA = ke[u][C] : K.disableWarning === !1 && ot.warn("Unable to look up font label for font '" + u + "', '" + C + "'. Refer to getFontList() for available fonts."), fA || K.noFallback || (fA = ke.times[C]) == null && (fA = ke.times.normal), fA;
  }, Ql = p.__private__.putInfo = function() {
    var u = qe(), C = function(Z) {
      return Z;
    };
    for (var K in h !== null && (C = zt.encryptor(u, 0)), G("<<"), G("/Producer (" + ur(C("jsPDF " + Fe.version)) + ")"), re) re.hasOwnProperty(K) && re[K] && G("/" + K.substr(0, 1).toUpperCase() + K.substr(1) + " (" + ur(C(re[K])) + ")");
    G("/CreationDate (" + ur(C(R)) + ")"), G(">>"), G("endobj");
  }, Ci = p.__private__.putCatalog = function(u) {
    var C = (u = u || {}).rootDictionaryObjId || lr;
    switch (qe(), G("<<"), G("/Type /Catalog"), G("/Pages " + C + " 0 R"), XA || (XA = "fullwidth"), XA) {
      case "fullwidth":
        G("/OpenAction [3 0 R /FitH null]");
        break;
      case "fullheight":
        G("/OpenAction [3 0 R /FitV null]");
        break;
      case "fullpage":
        G("/OpenAction [3 0 R /Fit]");
        break;
      case "original":
        G("/OpenAction [3 0 R /XYZ null null 1]");
        break;
      default:
        var K = "" + XA;
        K.substr(K.length - 1) === "%" && (XA = parseInt(XA) / 100), typeof XA == "number" && G("/OpenAction [3 0 R /XYZ null null " + lA(XA) + "]");
    }
    switch (PA || (PA = "continuous"), PA) {
      case "continuous":
        G("/PageLayout /OneColumn");
        break;
      case "single":
        G("/PageLayout /SinglePage");
        break;
      case "two":
      case "twoleft":
        G("/PageLayout /TwoColumnLeft");
        break;
      case "tworight":
        G("/PageLayout /TwoColumnRight");
    }
    sA && G("/PageMode /" + sA), ae.publish("putCatalog"), G(">>"), G("endobj");
  }, Ul = p.__private__.putTrailer = function() {
    G("trailer"), G("<<"), G("/Size " + ($ + 1)), G("/Root " + $ + " 0 R"), G("/Info " + ($ - 1) + " 0 R"), h !== null && G("/Encrypt " + zt.oid + " 0 R"), G("/ID [ <" + X + "> <" + X + "> ]"), G(">>");
  }, Ll = p.__private__.putHeader = function() {
    G("%PDF-" + m), G("%ºß¬à");
  }, El = p.__private__.putXRef = function() {
    var u = "0000000000";
    G("xref"), G("0 " + ($ + 1)), G("0000000000 65535 f ");
    for (var C = 1; C <= $; C++)
      typeof uA[C] == "function" ? G((u + uA[C]()).slice(-10) + " 00000 n ") : uA[C] !== void 0 ? G((u + uA[C]).slice(-10) + " 00000 n ") : G("0000000000 00000 n ");
  }, gn = p.__private__.buildDocument = function() {
    UA(), yA(hA), ae.publish("buildDocument"), Ll(), dA(), Ca(), ya(), h !== null && ma(), Ql(), Ci();
    var u = mA;
    return El(), Ul(), G("startxref"), G("" + u), G("%%EOF"), yA(VA[T]), hA.join(`
`);
  }, Is = p.__private__.getBlob = function(u) {
    return new Blob([DA(u)], { type: "application/pdf" });
  }, Ss = p.output = p.__private__.output = jr(function(u, C) {
    switch (typeof (C = C || {}) == "string" ? C = { filename: C } : C.filename = C.filename || "generated.pdf", u) {
      case void 0:
        return gn();
      case "save":
        p.save(C.filename);
        break;
      case "arraybuffer":
        return DA(gn());
      case "blob":
        return Is(gn());
      case "bloburi":
      case "bloburl":
        if (Qe.URL !== void 0 && typeof Qe.URL.createObjectURL == "function") return Qe.URL && Qe.URL.createObjectURL(Is(gn())) || void 0;
        ot.warn("bloburl is not supported by your system, because URL.createObjectURL is not supported by your browser.");
        break;
      case "datauristring":
      case "dataurlstring":
        var K = "", Z = gn();
        try {
          K = Gc(Z);
        } catch {
          K = Gc(unescape(encodeURIComponent(Z)));
        }
        return "data:application/pdf;filename=" + C.filename + ";base64," + K;
      case "pdfobjectnewwindow":
        if (Object.prototype.toString.call(Qe) === "[object Window]") {
          var fA = "https://cdnjs.cloudflare.com/ajax/libs/pdfobject/2.1.1/pdfobject.min.js", SA = ' integrity="sha512-4ze/a9/4jqu+tX9dfOqJYSvyYd5M6qum/3HpCLr+/Jqf0whc37VUbkpNGHR7/8pSnCFw47T1fmIpwBV7UySh3g==" crossorigin="anonymous"';
          C.pdfObjectUrl && (fA = C.pdfObjectUrl, SA = "");
          var GA = '<html><style>html, body { padding: 0; margin: 0; } iframe { width: 100%; height: 100%; border: 0;}  </style><body><script src="' + fA + '"' + SA + '><\/script><script >PDFObject.embed("' + this.output("dataurlstring") + '", ' + JSON.stringify(C) + ");<\/script></body></html>", le = Qe.open();
          return le !== null && le.document.write(GA), le;
        }
        throw new Error("The option pdfobjectnewwindow just works in a browser-environment.");
      case "pdfjsnewwindow":
        if (Object.prototype.toString.call(Qe) === "[object Window]") {
          var ye = '<html><style>html, body { padding: 0; margin: 0; } iframe { width: 100%; height: 100%; border: 0;}  </style><body><iframe id="pdfViewer" src="' + (C.pdfJsUrl || "examples/PDF.js/web/viewer.html") + "?file=&downloadName=" + C.filename + '" width="500px" height="400px" /></body></html>', Ie = Qe.open();
          if (Ie !== null) {
            Ie.document.write(ye);
            var Ee = this;
            Ie.document.documentElement.querySelector("#pdfViewer").onload = function() {
              Ie.document.title = C.filename, Ie.document.documentElement.querySelector("#pdfViewer").contentWindow.PDFViewerApplication.open(Ee.output("bloburl"));
            };
          }
          return Ie;
        }
        throw new Error("The option pdfjsnewwindow just works in a browser-environment.");
      case "dataurlnewwindow":
        if (Object.prototype.toString.call(Qe) !== "[object Window]") throw new Error("The option dataurlnewwindow just works in a browser-environment.");
        var Ge = '<html><style>html, body { padding: 0; margin: 0; } iframe { width: 100%; height: 100%; border: 0;}  </style><body><iframe src="' + this.output("datauristring", C) + '"></iframe></body></html>', gt = Qe.open();
        if (gt !== null && (gt.document.write(Ge), gt.document.title = C.filename), gt || typeof safari > "u") return gt;
        break;
      case "datauri":
      case "dataurl":
        return Qe.document.location.href = this.output("datauristring", C);
      default:
        return null;
    }
  }), La = function(u) {
    return Array.isArray(He) === !0 && He.indexOf(u) > -1;
  };
  switch (r) {
    case "pt":
      RA = 1;
      break;
    case "mm":
      RA = 72 / 25.4;
      break;
    case "cm":
      RA = 72 / 2.54;
      break;
    case "in":
      RA = 72;
      break;
    case "px":
      RA = La("px_scaling") == 1 ? 0.75 : 96 / 72;
      break;
    case "pc":
    case "em":
      RA = 12;
      break;
    case "ex":
      RA = 6;
      break;
    default:
      if (typeof r != "number") throw new Error("Invalid unit: " + r);
      RA = r;
  }
  var zt = null;
  QA(), z();
  var xl = function(u) {
    return h !== null ? zt.encryptor(u, 0) : function(C) {
      return C;
    };
  }, Ea = p.__private__.getPageInfo = p.getPageInfo = function(u) {
    if (isNaN(u) || u % 1 != 0) throw new Error("Invalid argument passed to jsPDF.getPageInfo");
    return { objId: LA[u].objId, pageNumber: u, pageContext: LA[u] };
  }, Le = p.__private__.getPageInfoByObjId = function(u) {
    if (isNaN(u) || u % 1 != 0) throw new Error("Invalid argument passed to jsPDF.getPageInfoByObjId");
    for (var C in LA) if (LA[C].objId === u) break;
    return Ea(C);
  }, Il = p.__private__.getCurrentPageInfo = p.getCurrentPageInfo = function() {
    return { objId: LA[T].objId, pageNumber: T, pageContext: LA[T] };
  };
  p.addPage = function() {
    return Fa.apply(this, arguments), this;
  }, p.setPage = function() {
    return Qa.apply(this, arguments), yA.call(this, VA[T]), this;
  }, p.insertPage = function(u) {
    return this.addPage(), this.movePage(T, u), this;
  }, p.movePage = function(u, C) {
    var K, Z;
    if (u > C) {
      K = VA[u], Z = LA[u];
      for (var fA = u; fA > C; fA--) VA[fA] = VA[fA - 1], LA[fA] = LA[fA - 1];
      VA[C] = K, LA[C] = Z, this.setPage(C);
    } else if (u < C) {
      K = VA[u], Z = LA[u];
      for (var SA = u; SA < C; SA++) VA[SA] = VA[SA + 1], LA[SA] = LA[SA + 1];
      VA[C] = K, LA[C] = Z, this.setPage(C);
    }
    return this;
  }, p.deletePage = function() {
    return bl.apply(this, arguments), this;
  }, p.__private__.text = p.text = function(u, C, K, Z, fA) {
    var SA, GA, le, ye, Ie, Ee, Ge, gt, Bt, It = (Z = Z || {}).scope || this;
    if (typeof u == "number" && typeof C == "number" && (typeof K == "string" || Array.isArray(K))) {
      var Yt = K;
      K = C, C = u, u = Yt;
    }
    if (arguments[3] instanceof qA ? (O("The transform parameter of text() with a Matrix value"), Bt = fA) : (le = arguments[4], ye = arguments[5], et(Ge = arguments[3]) === "object" && Ge !== null || (typeof le == "string" && (ye = le, le = null), typeof Ge == "string" && (ye = Ge, Ge = null), typeof Ge == "number" && (le = Ge, Ge = null), Z = { flags: Ge, angle: le, align: ye })), isNaN(C) || isNaN(K) || u == null) throw new Error("Invalid arguments passed to jsPDF.text");
    if (u.length === 0) return It;
    var Mt = "", Wr = !1, br = typeof Z.lineHeightFactor == "number" ? Z.lineHeightFactor : os, sn = It.internal.scaleFactor;
    function _a(lt) {
      return lt = lt.split("	").join(Array(Z.TabLen || 9).join(" ")), ur(lt, Ge);
    }
    function ki(lt) {
      for (var ct, bt = lt.concat(), Ht = [], mn = bt.length; mn--; ) typeof (ct = bt.shift()) == "string" ? Ht.push(ct) : Array.isArray(lt) && (ct.length === 1 || ct[1] === void 0 && ct[2] === void 0) ? Ht.push(ct[0]) : Ht.push([ct[0], ct[1], ct[2]]);
      return Ht;
    }
    function Hi(lt, ct) {
      var bt;
      if (typeof lt == "string") bt = ct(lt)[0];
      else if (Array.isArray(lt)) {
        for (var Ht, mn, Ki = lt.concat(), qs = [], Ka = Ki.length; Ka--; ) typeof (Ht = Ki.shift()) == "string" ? qs.push(ct(Ht)[0]) : Array.isArray(Ht) && typeof Ht[0] == "string" && (mn = ct(Ht[0], Ht[1], Ht[2]), qs.push([mn[0], mn[1], mn[2]]));
        bt = qs;
      }
      return bt;
    }
    var _s = !1, Ti = !0;
    if (typeof u == "string") _s = !0;
    else if (Array.isArray(u)) {
      var Ni = u.concat();
      GA = [];
      for (var Ms, Gt = Ni.length; Gt--; ) (typeof (Ms = Ni.shift()) != "string" || Array.isArray(Ms) && typeof Ms[0] != "string") && (Ti = !1);
      _s = Ti;
    }
    if (_s === !1) throw new Error('Type of text must be string or Array. "' + u + '" is not recognized.');
    typeof u == "string" && (u = u.match(/[\r?\n]/) ? u.split(/\r\n|\r|\n/g) : [u]);
    var Ps = HA / It.internal.scaleFactor, Os = Ps * (br - 1);
    switch (Z.baseline) {
      case "bottom":
        K -= Os;
        break;
      case "top":
        K += Ps - Os;
        break;
      case "hanging":
        K += Ps - 2 * Os;
        break;
      case "middle":
        K += Ps / 2 - Os;
    }
    if ((Ee = Z.maxWidth || 0) > 0 && (typeof u == "string" ? u = It.splitTextToSize(u, Ee) : Object.prototype.toString.call(u) === "[object Array]" && (u = u.reduce(function(lt, ct) {
      return lt.concat(It.splitTextToSize(ct, Ee));
    }, []))), SA = { text: u, x: C, y: K, options: Z, mutex: { pdfEscape: ur, activeFontKey: ce, fonts: Ue, activeFontSize: HA } }, ae.publish("preProcessText", SA), u = SA.text, le = (Z = SA.options).angle, !(Bt instanceof qA) && le && typeof le == "number") {
      le *= Math.PI / 180, Z.rotationDirection === 0 && (le = -le), P === E.ADVANCED && (le = -le);
      var Rs = Math.cos(le), _i = Math.sin(le);
      Bt = new qA(Rs, _i, -_i, Rs, 0, 0);
    } else le && le instanceof qA && (Bt = le);
    P !== E.ADVANCED || Bt || (Bt = it), (Ie = Z.charSpace || Hs) !== void 0 && (Mt += W(Q(Ie)) + ` Tc
`, this.setCharSpace(this.getCharSpace() || 0)), (gt = Z.horizontalScale) !== void 0 && (Mt += W(100 * gt) + ` Tz
`), Z.lang;
    var fr = -1, Ol = Z.renderingMode !== void 0 ? Z.renderingMode : Z.stroke, Mi = It.internal.getCurrentPageInfo().pageContext;
    switch (Ol) {
      case 0:
      case !1:
      case "fill":
        fr = 0;
        break;
      case 1:
      case !0:
      case "stroke":
        fr = 1;
        break;
      case 2:
      case "fillThenStroke":
        fr = 2;
        break;
      case 3:
      case "invisible":
        fr = 3;
        break;
      case 4:
      case "fillAndAddForClipping":
        fr = 4;
        break;
      case 5:
      case "strokeAndAddPathForClipping":
        fr = 5;
        break;
      case 6:
      case "fillThenStrokeAndAddToPathForClipping":
        fr = 6;
        break;
      case 7:
      case "addToPathForClipping":
        fr = 7;
    }
    var Ma = Mi.usedRenderingMode !== void 0 ? Mi.usedRenderingMode : -1;
    fr !== -1 ? Mt += fr + ` Tr
` : Ma !== -1 && (Mt += `0 Tr
`), fr !== -1 && (Mi.usedRenderingMode = fr), ye = Z.align || "left";
    var kr, Ks = HA * br, Pa = It.internal.pageSize.getWidth(), Oa = Ue[ce];
    Ie = Z.charSpace || Hs, Ee = Z.maxWidth || 0, Ge = Object.assign({ autoencode: !0, noBOM: !0 }, Z.flags);
    var Hn = [], us = function(lt) {
      return It.getStringUnitWidth(lt, { font: Oa, charSpace: Ie, fontSize: HA, doKerning: !1 }) * HA / sn;
    };
    if (Object.prototype.toString.call(u) === "[object Array]") {
      var dr;
      GA = ki(u), ye !== "left" && (kr = GA.map(us));
      var sr, Tn = 0;
      if (ye === "right") {
        C -= kr[0], u = [], Gt = GA.length;
        for (var Bn = 0; Bn < Gt; Bn++) Bn === 0 ? (sr = nn(C), dr = pn(K)) : (sr = Q(Tn - kr[Bn]), dr = -Ks), u.push([GA[Bn], sr, dr]), Tn = kr[Bn];
      } else if (ye === "center") {
        C -= kr[0] / 2, u = [], Gt = GA.length;
        for (var wn = 0; wn < Gt; wn++) wn === 0 ? (sr = nn(C), dr = pn(K)) : (sr = Q((Tn - kr[wn]) / 2), dr = -Ks), u.push([GA[wn], sr, dr]), Tn = kr[wn];
      } else if (ye === "left") {
        u = [], Gt = GA.length;
        for (var Vs = 0; Vs < Gt; Vs++) u.push(GA[Vs]);
      } else if (ye === "justify" && Oa.encoding === "Identity-H") {
        u = [], Gt = GA.length, Ee = Ee !== 0 ? Ee : Pa;
        for (var vn = 0, Ct = 0; Ct < Gt; Ct++) if (dr = Ct === 0 ? pn(K) : -Ks, sr = Ct === 0 ? nn(C) : vn, Ct < Gt - 1) {
          var Pi = Q((Ee - kr[Ct]) / (GA[Ct].split(" ").length - 1)), ir = GA[Ct].split(" ");
          u.push([ir[0] + " ", sr, dr]), vn = 0;
          for (var Hr = 1; Hr < ir.length; Hr++) {
            var Gs = (us(ir[Hr - 1] + " " + ir[Hr]) - us(ir[Hr])) * sn + Pi;
            Hr == ir.length - 1 ? u.push([ir[Hr], Gs, 0]) : u.push([ir[Hr] + " ", Gs, 0]), vn -= Gs;
          }
        } else u.push([GA[Ct], sr, dr]);
        u.push(["", vn, 0]);
      } else {
        if (ye !== "justify") throw new Error('Unrecognized alignment option, use "left", "center", "right" or "justify".');
        for (u = [], Gt = GA.length, Ee = Ee !== 0 ? Ee : Pa, Ct = 0; Ct < Gt; Ct++) dr = Ct === 0 ? pn(K) : -Ks, sr = Ct === 0 ? nn(C) : 0, Ct < Gt - 1 ? Hn.push(W(Q((Ee - kr[Ct]) / (GA[Ct].split(" ").length - 1)))) : Hn.push(0), u.push([GA[Ct], sr, dr]);
      }
    }
    var Ra = typeof Z.R2L == "boolean" ? Z.R2L : ZA;
    Ra === !0 && (u = Hi(u, function(lt, ct, bt) {
      return [lt.split("").reverse().join(""), ct, bt];
    })), SA = { text: u, x: C, y: K, options: Z, mutex: { pdfEscape: ur, activeFontKey: ce, fonts: Ue, activeFontSize: HA } }, ae.publish("postProcessText", SA), u = SA.text, Wr = SA.mutex.isHex || !1;
    var Oi = Ue[ce].encoding;
    Oi !== "WinAnsiEncoding" && Oi !== "StandardEncoding" || (u = Hi(u, function(lt, ct, bt) {
      return [_a(lt), ct, bt];
    })), GA = ki(u), u = [];
    for (var fs, ds, Nn, hs = 0, js = 1, gs = Array.isArray(GA[0]) ? js : hs, _n = "", Ri = function(lt, ct, bt) {
      var Ht = "";
      return bt instanceof qA ? (bt = typeof Z.angle == "number" ? Ne(bt, new qA(1, 0, 0, 1, lt, ct)) : Ne(new qA(1, 0, 0, 1, lt, ct), bt), P === E.ADVANCED && (bt = Ne(new qA(1, 0, 0, -1, 0, 0), bt)), Ht = bt.join(" ") + ` Tm
`) : Ht = W(lt) + " " + W(ct) + ` Td
`, Ht;
    }, Tr = 0; Tr < GA.length; Tr++) {
      switch (_n = "", gs) {
        case js:
          Nn = (Wr ? "<" : "(") + GA[Tr][0] + (Wr ? ">" : ")"), fs = parseFloat(GA[Tr][1]), ds = parseFloat(GA[Tr][2]);
          break;
        case hs:
          Nn = (Wr ? "<" : "(") + GA[Tr] + (Wr ? ">" : ")"), fs = nn(C), ds = pn(K);
      }
      Hn !== void 0 && Hn[Tr] !== void 0 && (_n = Hn[Tr] + ` Tw
`), Tr === 0 ? u.push(_n + Ri(fs, ds, Bt) + Nn) : gs === hs ? u.push(_n + Nn) : gs === js && u.push(_n + Ri(fs, ds, Bt) + Nn);
    }
    u = gs === hs ? u.join(` Tj
T* `) : u.join(` Tj
`), u += ` Tj
`;
    var Nr = `BT
/`;
    return Nr += ce + " " + HA + ` Tf
`, Nr += W(HA * br) + ` TL
`, Nr += ls + `
`, Nr += Mt, Nr += u, G(Nr += "ET"), w[ce] = !0, It;
  };
  var Sl = p.__private__.clip = p.clip = function(u) {
    return G(u === "evenodd" ? "W*" : "W"), this;
  };
  p.clipEvenOdd = function() {
    return Sl("evenodd");
  }, p.__private__.discardPath = p.discardPath = function() {
    return G("n"), this;
  };
  var rn = p.__private__.isValidStyle = function(u) {
    var C = !1;
    return [void 0, null, "S", "D", "F", "DF", "FD", "f", "f*", "B", "B*", "n"].indexOf(u) !== -1 && (C = !0), C;
  };
  p.__private__.setDefaultPathOperation = p.setDefaultPathOperation = function(u) {
    return rn(u) && (d = u), this;
  };
  var xa = p.__private__.getStyle = p.getStyle = function(u) {
    var C = d;
    switch (u) {
      case "D":
      case "S":
        C = "S";
        break;
      case "F":
        C = "f";
        break;
      case "FD":
      case "DF":
        C = "B";
        break;
      case "f":
      case "f*":
      case "B":
      case "B*":
        C = u;
    }
    return C;
  }, Ia = p.close = function() {
    return G("h"), this;
  };
  p.stroke = function() {
    return G("S"), this;
  }, p.fill = function(u) {
    return Ds("f", u), this;
  }, p.fillEvenOdd = function(u) {
    return Ds("f*", u), this;
  }, p.fillStroke = function(u) {
    return Ds("B", u), this;
  }, p.fillStrokeEvenOdd = function(u) {
    return Ds("B*", u), this;
  };
  var Ds = function(u, C) {
    et(C) === "object" ? kl(C, u) : G(u);
  }, bi = function(u) {
    u === null || P === E.ADVANCED && u === void 0 || (u = xa(u), G(u));
  };
  function Dl(u, C, K, Z, fA) {
    var SA = new ci(C || this.boundingBox, K || this.xStep, Z || this.yStep, this.gState, fA || this.matrix);
    SA.stream = this.stream;
    var GA = u + "$$" + this.cloneIndex++ + "$$";
    return ze(GA, SA), SA;
  }
  var kl = function(u, C) {
    var K = xt[u.key], Z = Se[K];
    if (Z instanceof ms) G("q"), G(Hl(C)), Z.gState && p.setGState(Z.gState), G(u.matrix.toString() + " cm"), G("/" + K + " sh"), G("Q");
    else if (Z instanceof ci) {
      var fA = new qA(1, 0, 0, -1, 0, kn());
      u.matrix && (fA = fA.multiply(u.matrix || it), K = Dl.call(Z, u.key, u.boundingBox, u.xStep, u.yStep, fA).id), G("q"), G("/Pattern cs"), G("/" + K + " scn"), Z.gState && p.setGState(Z.gState), G(C), G("Q");
    }
  }, Hl = function(u) {
    switch (u) {
      case "f":
      case "F":
        return "W n";
      case "f*":
        return "W* n";
      case "B":
        return "W S";
      case "B*":
        return "W* S";
      case "S":
        return "W S";
      case "n":
        return "W n";
    }
  }, Fi = p.moveTo = function(u, C) {
    return G(W(Q(u)) + " " + W(U(C)) + " m"), this;
  }, as = p.lineTo = function(u, C) {
    return G(W(Q(u)) + " " + W(U(C)) + " l"), this;
  }, Sn = p.curveTo = function(u, C, K, Z, fA, SA) {
    return G([W(Q(u)), W(U(C)), W(Q(K)), W(U(Z)), W(Q(fA)), W(U(SA)), "c"].join(" ")), this;
  };
  p.__private__.line = p.line = function(u, C, K, Z, fA) {
    if (isNaN(u) || isNaN(C) || isNaN(K) || isNaN(Z) || !rn(fA)) throw new Error("Invalid arguments passed to jsPDF.line");
    return P === E.COMPAT ? this.lines([[K - u, Z - C]], u, C, [1, 1], fA || "S") : this.lines([[K - u, Z - C]], u, C, [1, 1]).stroke();
  }, p.__private__.lines = p.lines = function(u, C, K, Z, fA, SA) {
    var GA, le, ye, Ie, Ee, Ge, gt, Bt, It, Yt, Mt, Wr;
    if (typeof u == "number" && (Wr = K, K = C, C = u, u = Wr), Z = Z || [1, 1], SA = SA || !1, isNaN(C) || isNaN(K) || !Array.isArray(u) || !Array.isArray(Z) || !rn(fA) || typeof SA != "boolean") throw new Error("Invalid arguments passed to jsPDF.lines");
    for (Fi(C, K), GA = Z[0], le = Z[1], Ie = u.length, Yt = C, Mt = K, ye = 0; ye < Ie; ye++) (Ee = u[ye]).length === 2 ? (Yt = Ee[0] * GA + Yt, Mt = Ee[1] * le + Mt, as(Yt, Mt)) : (Ge = Ee[0] * GA + Yt, gt = Ee[1] * le + Mt, Bt = Ee[2] * GA + Yt, It = Ee[3] * le + Mt, Yt = Ee[4] * GA + Yt, Mt = Ee[5] * le + Mt, Sn(Ge, gt, Bt, It, Yt, Mt));
    return SA && Ia(), bi(fA), this;
  }, p.path = function(u) {
    for (var C = 0; C < u.length; C++) {
      var K = u[C], Z = K.c;
      switch (K.op) {
        case "m":
          Fi(Z[0], Z[1]);
          break;
        case "l":
          as(Z[0], Z[1]);
          break;
        case "c":
          Sn.apply(this, Z);
          break;
        case "h":
          Ia();
      }
    }
    return this;
  }, p.__private__.rect = p.rect = function(u, C, K, Z, fA) {
    if (isNaN(u) || isNaN(C) || isNaN(K) || isNaN(Z) || !rn(fA)) throw new Error("Invalid arguments passed to jsPDF.rect");
    return P === E.COMPAT && (Z = -Z), G([W(Q(u)), W(U(C)), W(Q(K)), W(Q(Z)), "re"].join(" ")), bi(fA), this;
  }, p.__private__.triangle = p.triangle = function(u, C, K, Z, fA, SA, GA) {
    if (isNaN(u) || isNaN(C) || isNaN(K) || isNaN(Z) || isNaN(fA) || isNaN(SA) || !rn(GA)) throw new Error("Invalid arguments passed to jsPDF.triangle");
    return this.lines([[K - u, Z - C], [fA - K, SA - Z], [u - fA, C - SA]], u, C, [1, 1], GA, !0), this;
  }, p.__private__.roundedRect = p.roundedRect = function(u, C, K, Z, fA, SA, GA) {
    if (isNaN(u) || isNaN(C) || isNaN(K) || isNaN(Z) || isNaN(fA) || isNaN(SA) || !rn(GA)) throw new Error("Invalid arguments passed to jsPDF.roundedRect");
    var le = 4 / 3 * (Math.SQRT2 - 1);
    return fA = Math.min(fA, 0.5 * K), SA = Math.min(SA, 0.5 * Z), this.lines([[K - 2 * fA, 0], [fA * le, 0, fA, SA - SA * le, fA, SA], [0, Z - 2 * SA], [0, SA * le, -fA * le, SA, -fA, SA], [2 * fA - K, 0], [-fA * le, 0, -fA, -SA * le, -fA, -SA], [0, 2 * SA - Z], [0, -SA * le, fA * le, -SA, fA, -SA]], u + fA, C, [1, 1], GA, !0), this;
  }, p.__private__.ellipse = p.ellipse = function(u, C, K, Z, fA) {
    if (isNaN(u) || isNaN(C) || isNaN(K) || isNaN(Z) || !rn(fA)) throw new Error("Invalid arguments passed to jsPDF.ellipse");
    var SA = 4 / 3 * (Math.SQRT2 - 1) * K, GA = 4 / 3 * (Math.SQRT2 - 1) * Z;
    return Fi(u + K, C), Sn(u + K, C - GA, u + SA, C - Z, u, C - Z), Sn(u - SA, C - Z, u - K, C - GA, u - K, C), Sn(u - K, C + GA, u - SA, C + Z, u, C + Z), Sn(u + SA, C + Z, u + K, C + GA, u + K, C), bi(fA), this;
  }, p.__private__.circle = p.circle = function(u, C, K, Z) {
    if (isNaN(u) || isNaN(C) || isNaN(K) || !rn(Z)) throw new Error("Invalid arguments passed to jsPDF.circle");
    return this.ellipse(u, C, K, K, Z);
  }, p.setFont = function(u, C, K) {
    return K && (C = Y(C, K)), ce = Ua(u, C, { disableWarning: !1 }), this;
  };
  var Tl = p.__private__.getFont = p.getFont = function() {
    return Ue[Ua.apply(p, arguments)];
  };
  p.__private__.getFontList = p.getFontList = function() {
    var u, C, K = {};
    for (u in ke) if (ke.hasOwnProperty(u)) for (C in K[u] = [], ke[u]) ke[u].hasOwnProperty(C) && K[u].push(C);
    return K;
  }, p.addFont = function(u, C, K, Z, fA) {
    var SA = ["StandardEncoding", "MacRomanEncoding", "Identity-H", "WinAnsiEncoding"];
    return arguments[3] && SA.indexOf(arguments[3]) !== -1 ? fA = arguments[3] : arguments[3] && SA.indexOf(arguments[3]) == -1 && (K = Y(K, Z)), fA = fA || "Identity-H", mi.call(this, u, C, K, fA);
  };
  var os, Qi = t.lineWidth || 0.200025, ks = p.__private__.getLineWidth = p.getLineWidth = function() {
    return Qi;
  }, Sa = p.__private__.setLineWidth = p.setLineWidth = function(u) {
    return Qi = u, G(W(Q(u)) + " w"), this;
  };
  p.__private__.setLineDash = Fe.API.setLineDash = Fe.API.setLineDashPattern = function(u, C) {
    if (u = u || [], C = C || 0, isNaN(C) || !Array.isArray(u)) throw new Error("Invalid arguments passed to jsPDF.setLineDash");
    return u = u.map(function(K) {
      return W(Q(K));
    }).join(" "), C = W(Q(C)), G("[" + u + "] " + C + " d"), this;
  };
  var Da = p.__private__.getLineHeight = p.getLineHeight = function() {
    return HA * os;
  };
  p.__private__.getLineHeight = p.getLineHeight = function() {
    return HA * os;
  };
  var ka = p.__private__.setLineHeightFactor = p.setLineHeightFactor = function(u) {
    return typeof (u = u || 1.15) == "number" && (os = u), this;
  }, Ha = p.__private__.getLineHeightFactor = p.getLineHeightFactor = function() {
    return os;
  };
  ka(t.lineHeight);
  var nn = p.__private__.getHorizontalCoordinate = function(u) {
    return Q(u);
  }, pn = p.__private__.getVerticalCoordinate = function(u) {
    return P === E.ADVANCED ? u : LA[T].mediaBox.topRightY - LA[T].mediaBox.bottomLeftY - Q(u);
  }, Nl = p.__private__.getHorizontalCoordinateString = p.getHorizontalCoordinateString = function(u) {
    return W(nn(u));
  }, Dn = p.__private__.getVerticalCoordinateString = p.getVerticalCoordinateString = function(u) {
    return W(pn(u));
  }, qr = t.strokeColor || "0 G";
  p.__private__.getStrokeColor = p.getDrawColor = function() {
    return nr(qr);
  }, p.__private__.setStrokeColor = p.setDrawColor = function(u, C, K, Z) {
    return qr = Vt({ ch1: u, ch2: C, ch3: K, ch4: Z, pdfColorType: "draw", precision: 2 }), G(qr), this;
  };
  var Ui = t.fillColor || "0 g";
  p.__private__.getFillColor = p.getFillColor = function() {
    return nr(Ui);
  }, p.__private__.setFillColor = p.setFillColor = function(u, C, K, Z) {
    return Ui = Vt({ ch1: u, ch2: C, ch3: K, ch4: Z, pdfColorType: "fill", precision: 2 }), G(Ui), this;
  };
  var ls = t.textColor || "0 g", _l = p.__private__.getTextColor = p.getTextColor = function() {
    return nr(ls);
  };
  p.__private__.setTextColor = p.setTextColor = function(u, C, K, Z) {
    return ls = Vt({ ch1: u, ch2: C, ch3: K, ch4: Z, pdfColorType: "text", precision: 3 }), this;
  };
  var Hs = t.charSpace, Ml = p.__private__.getCharSpace = p.getCharSpace = function() {
    return parseFloat(Hs || 0);
  };
  p.__private__.setCharSpace = p.setCharSpace = function(u) {
    if (isNaN(u)) throw new Error("Invalid argument passed to jsPDF.setCharSpace");
    return Hs = u, this;
  };
  var Li = 0;
  p.CapJoinStyles = { 0: 0, butt: 0, but: 0, miter: 0, 1: 1, round: 1, rounded: 1, circle: 1, 2: 2, projecting: 2, project: 2, square: 2, bevel: 2 }, p.__private__.setLineCap = p.setLineCap = function(u) {
    var C = p.CapJoinStyles[u];
    if (C === void 0) throw new Error("Line cap style of '" + u + "' is not recognized. See or extend .CapJoinStyles property for valid styles");
    return Li = C, G(C + " J"), this;
  };
  var Ei = 0;
  p.__private__.setLineJoin = p.setLineJoin = function(u) {
    var C = p.CapJoinStyles[u];
    if (C === void 0) throw new Error("Line join style of '" + u + "' is not recognized. See or extend .CapJoinStyles property for valid styles");
    return Ei = C, G(C + " j"), this;
  }, p.__private__.setLineMiterLimit = p.__private__.setMiterLimit = p.setLineMiterLimit = p.setMiterLimit = function(u) {
    if (u = u || 0, isNaN(u)) throw new Error("Invalid argument passed to jsPDF.setLineMiterLimit");
    return G(W(Q(u)) + " M"), this;
  }, p.GState = Xo, p.setGState = function(u) {
    (u = typeof u == "string" ? gA[_A[u]] : Ta(null, u)).equals(Ae) || (G("/" + u.id + " gs"), Ae = u);
  };
  var Ta = function(u, C) {
    if (!u || !_A[u]) {
      var K = !1;
      for (var Z in gA) if (gA.hasOwnProperty(Z) && gA[Z].equals(C)) {
        K = !0;
        break;
      }
      if (K) C = gA[Z];
      else {
        var fA = "GS" + (Object.keys(gA).length + 1).toString(10);
        gA[fA] = C, C.id = fA;
      }
      return u && (_A[u] = C.id), ae.publish("addGState", C), C;
    }
  };
  p.addGState = function(u, C) {
    return Ta(u, C), this;
  }, p.saveGraphicsState = function() {
    return G("q"), mt.push({ key: ce, size: HA, color: ls }), this;
  }, p.restoreGraphicsState = function() {
    G("Q");
    var u = mt.pop();
    return ce = u.key, HA = u.size, ls = u.color, Ae = null, this;
  }, p.setCurrentTransformationMatrix = function(u) {
    return G(u.toString() + " cm"), this;
  }, p.comment = function(u) {
    return G("#" + u), this;
  };
  var Ts = function(u, C) {
    var K = u || 0;
    Object.defineProperty(this, "x", { enumerable: !0, get: function() {
      return K;
    }, set: function(SA) {
      isNaN(SA) || (K = parseFloat(SA));
    } });
    var Z = C || 0;
    Object.defineProperty(this, "y", { enumerable: !0, get: function() {
      return Z;
    }, set: function(SA) {
      isNaN(SA) || (Z = parseFloat(SA));
    } });
    var fA = "pt";
    return Object.defineProperty(this, "type", { enumerable: !0, get: function() {
      return fA;
    }, set: function(SA) {
      fA = SA.toString();
    } }), this;
  }, xi = function(u, C, K, Z) {
    Ts.call(this, u, C), this.type = "rect";
    var fA = K || 0;
    Object.defineProperty(this, "w", { enumerable: !0, get: function() {
      return fA;
    }, set: function(GA) {
      isNaN(GA) || (fA = parseFloat(GA));
    } });
    var SA = Z || 0;
    return Object.defineProperty(this, "h", { enumerable: !0, get: function() {
      return SA;
    }, set: function(GA) {
      isNaN(GA) || (SA = parseFloat(GA));
    } }), this;
  }, Ii = function() {
    this.page = JA, this.currentPage = T, this.pages = VA.slice(0), this.pagesContext = LA.slice(0), this.x = Pe, this.y = Ce, this.matrix = tt, this.width = cs(T), this.height = kn(T), this.outputDestination = nA, this.id = "", this.objectNumber = -1;
  };
  Ii.prototype.restore = function() {
    JA = this.page, T = this.currentPage, LA = this.pagesContext, VA = this.pages, Pe = this.x, Ce = this.y, tt = this.matrix, Si(T, this.width), Di(T, this.height), nA = this.outputDestination;
  };
  var Na = function(u, C, K, Z, fA) {
    ee.push(new Ii()), JA = T = 0, VA = [], Pe = u, Ce = C, tt = fA, yi([K, Z]);
  }, Pl = function(u) {
    if ($A[u]) ee.pop().restore();
    else {
      var C = new Ii(), K = "Xo" + (Object.keys(ve).length + 1).toString(10);
      C.id = K, $A[u] = K, ve[K] = C, ae.publish("addFormObject", C), ee.pop().restore();
    }
  };
  for (var Ns in p.beginFormObject = function(u, C, K, Z, fA) {
    return Na(u, C, K, Z, fA), this;
  }, p.endFormObject = function(u) {
    return Pl(u), this;
  }, p.doFormObject = function(u, C) {
    var K = ve[$A[u]];
    return G("q"), G(C.toString() + " cm"), G("/" + K.id + " Do"), G("Q"), this;
  }, p.getFormObject = function(u) {
    var C = ve[$A[u]];
    return { x: C.x, y: C.y, width: C.width, height: C.height, matrix: C.matrix };
  }, p.save = function(u, C) {
    return u = u || "generated.pdf", (C = C || {}).returnPromise = C.returnPromise || !1, C.returnPromise === !1 ? (vs(Is(gn()), u), typeof vs.unload == "function" && Qe.setTimeout && setTimeout(vs.unload, 911), this) : new Promise(function(K, Z) {
      try {
        var fA = vs(Is(gn()), u);
        typeof vs.unload == "function" && Qe.setTimeout && setTimeout(vs.unload, 911), K(fA);
      } catch (SA) {
        Z(SA.message);
      }
    });
  }, Fe.API) Fe.API.hasOwnProperty(Ns) && (Ns === "events" && Fe.API.events.length ? function(u, C) {
    var K, Z, fA;
    for (fA = C.length - 1; fA !== -1; fA--) K = C[fA][0], Z = C[fA][1], u.subscribe.apply(u, [K].concat(typeof Z == "function" ? [Z] : Z));
  }(ae, Fe.API.events) : p[Ns] = Fe.API[Ns]);
  var cs = p.getPageWidth = function(u) {
    return (LA[u = u || T].mediaBox.topRightX - LA[u].mediaBox.bottomLeftX) / RA;
  }, Si = p.setPageWidth = function(u, C) {
    LA[u].mediaBox.topRightX = C * RA + LA[u].mediaBox.bottomLeftX;
  }, kn = p.getPageHeight = function(u) {
    return (LA[u = u || T].mediaBox.topRightY - LA[u].mediaBox.bottomLeftY) / RA;
  }, Di = p.setPageHeight = function(u, C) {
    LA[u].mediaBox.topRightY = C * RA + LA[u].mediaBox.bottomLeftY;
  };
  return p.internal = { pdfEscape: ur, getStyle: xa, getFont: Tl, getFontSize: OA, getCharSpace: Ml, getTextColor: _l, getLineHeight: Da, getLineHeightFactor: Ha, getLineWidth: ks, write: CA, getHorizontalCoordinate: nn, getVerticalCoordinate: pn, getCoordinateString: Nl, getVerticalCoordinateString: Dn, collections: {}, newObject: qe, newAdditionalObject: Gr, newObjectDeferred: rt, newObjectDeferredBegin: _t, getFilters: cr, putStream: vA, events: ae, scaleFactor: RA, pageSize: { getWidth: function() {
    return cs(T);
  }, setWidth: function(u) {
    Si(T, u);
  }, getHeight: function() {
    return kn(T);
  }, setHeight: function(u) {
    Di(T, u);
  } }, encryptionOptions: h, encryption: zt, getEncryptor: xl, output: Ss, getNumberOfPages: Fl, pages: VA, out: G, f2: lA, f3: I, getPageInfo: Ea, getPageInfoByObjId: Le, getCurrentPageInfo: Il, getPDFVersion: F, Point: Ts, Rectangle: xi, Matrix: qA, hasHotfix: La }, Object.defineProperty(p.internal.pageSize, "width", { get: function() {
    return cs(T);
  }, set: function(u) {
    Si(T, u);
  }, enumerable: !0, configurable: !0 }), Object.defineProperty(p.internal.pageSize, "height", { get: function() {
    return kn(T);
  }, set: function(u) {
    Di(T, u);
  }, enumerable: !0, configurable: !0 }), Cl.call(p, cA), ce = "F1", Fa(n, A), ae.publish("initialized"), p;
}
ii.prototype.lsbFirstWord = function(t) {
  return String.fromCharCode(t >> 0 & 255, t >> 8 & 255, t >> 16 & 255, t >> 24 & 255);
}, ii.prototype.toHexString = function(t) {
  return t.split("").map(function(e) {
    return ("0" + (255 & e.charCodeAt(0)).toString(16)).slice(-2);
  }).join("");
}, ii.prototype.hexToBytes = function(t) {
  for (var e = [], A = 0; A < t.length; A += 2) e.push(String.fromCharCode(parseInt(t.substr(A, 2), 16)));
  return e.join("");
}, ii.prototype.processOwnerPassword = function(t, e) {
  return qc(jc(e).substr(0, 5), t);
}, ii.prototype.encryptor = function(t, e) {
  var A = jc(this.encryptionKey + String.fromCharCode(255 & t, t >> 8 & 255, t >> 16 & 255, 255 & e, e >> 8 & 255)).substr(0, 10);
  return function(r) {
    return qc(A, r);
  };
}, Xo.prototype.equals = function(t) {
  var e, A = "id,objectNumber,equals";
  if (!t || et(t) !== et(this)) return !1;
  var r = 0;
  for (e in this) if (!(A.indexOf(e) >= 0)) {
    if (this.hasOwnProperty(e) && !t.hasOwnProperty(e) || this[e] !== t[e]) return !1;
    r++;
  }
  for (e in t) t.hasOwnProperty(e) && A.indexOf(e) < 0 && r--;
  return r === 0;
}, Fe.API = { events: [] }, Fe.version = "3.0.1";
var vt = Fe.API, Cu = 1, Us = function(t) {
  return t.replace(/\\/g, "\\\\").replace(/\(/g, "\\(").replace(/\)/g, "\\)");
}, Js = function(t) {
  return t.replace(/\\\\/g, "\\").replace(/\\\(/g, "(").replace(/\\\)/g, ")");
}, xe = function(t) {
  return t.toFixed(2);
}, qn = function(t) {
  return t.toFixed(5);
};
vt.__acroform__ = {};
var yr = function(t, e) {
  t.prototype = Object.create(e.prototype), t.prototype.constructor = t;
}, pf = function(t) {
  return t * Cu;
}, ln = function(t) {
  var e = new jd(), A = ge.internal.getHeight(t) || 0, r = ge.internal.getWidth(t) || 0;
  return e.BBox = [0, 0, Number(xe(r)), Number(xe(A))], e;
}, jB = vt.__acroform__.setBit = function(t, e) {
  if (t = t || 0, e = e || 0, isNaN(t) || isNaN(e)) throw new Error("Invalid arguments passed to jsPDF.API.__acroform__.setBit");
  return t |= 1 << e;
}, qB = vt.__acroform__.clearBit = function(t, e) {
  if (t = t || 0, e = e || 0, isNaN(t) || isNaN(e)) throw new Error("Invalid arguments passed to jsPDF.API.__acroform__.clearBit");
  return t &= ~(1 << e);
}, WB = vt.__acroform__.getBit = function(t, e) {
  if (isNaN(t) || isNaN(e)) throw new Error("Invalid arguments passed to jsPDF.API.__acroform__.getBit");
  return (t & 1 << e) == 0 ? 0 : 1;
}, Ut = vt.__acroform__.getBitForPdf = function(t, e) {
  if (isNaN(t) || isNaN(e)) throw new Error("Invalid arguments passed to jsPDF.API.__acroform__.getBitForPdf");
  return WB(t, e - 1);
}, Lt = vt.__acroform__.setBitForPdf = function(t, e) {
  if (isNaN(t) || isNaN(e)) throw new Error("Invalid arguments passed to jsPDF.API.__acroform__.setBitForPdf");
  return jB(t, e - 1);
}, Et = vt.__acroform__.clearBitForPdf = function(t, e) {
  if (isNaN(t) || isNaN(e)) throw new Error("Invalid arguments passed to jsPDF.API.__acroform__.clearBitForPdf");
  return qB(t, e - 1);
}, XB = vt.__acroform__.calculateCoordinates = function(t, e) {
  var A = e.internal.getHorizontalCoordinate, r = e.internal.getVerticalCoordinate, n = t[0], s = t[1], a = t[2], o = t[3], c = {};
  return c.lowerLeft_X = A(n) || 0, c.lowerLeft_Y = r(s + o) || 0, c.upperRight_X = A(n + a) || 0, c.upperRight_Y = r(s) || 0, [Number(xe(c.lowerLeft_X)), Number(xe(c.lowerLeft_Y)), Number(xe(c.upperRight_X)), Number(xe(c.upperRight_Y))];
}, zB = function(t) {
  if (t.appearanceStreamContent) return t.appearanceStreamContent;
  if (t.V || t.DV) {
    var e = [], A = t._V || t.DV, r = Wc(t, A), n = t.scope.internal.getFont(t.fontName, t.fontStyle).id;
    e.push("/Tx BMC"), e.push("q"), e.push("BT"), e.push(t.scope.__private__.encodeColorString(t.color)), e.push("/" + n + " " + xe(r.fontSize) + " Tf"), e.push("1 0 0 1 0 0 Tm"), e.push(r.text), e.push("ET"), e.push("Q"), e.push("EMC");
    var s = ln(t);
    return s.scope = t.scope, s.stream = e.join(`
`), s;
  }
}, Wc = function(t, e) {
  var A = t.fontSize === 0 ? t.maxFontSize : t.fontSize, r = { text: "", fontSize: "" }, n = (e = (e = e.substr(0, 1) == "(" ? e.substr(1) : e).substr(e.length - 1) == ")" ? e.substr(0, e.length - 1) : e).split(" ");
  n = t.multiline ? n.map(function(I) {
    return I.split(`
`);
  }) : n.map(function(I) {
    return [I];
  });
  var s = A, a = ge.internal.getHeight(t) || 0;
  a = a < 0 ? -a : a;
  var o = ge.internal.getWidth(t) || 0;
  o = o < 0 ? -o : o;
  var c = function(I, Q, k) {
    if (I + 1 < n.length) {
      var U = Q + " " + n[I + 1][0];
      return co(U, t, k).width <= o - 4;
    }
    return !1;
  };
  s++;
  A: for (; s > 0; ) {
    e = "", s--;
    var d, h, g = co("3", t, s).height, w = t.multiline ? a - s : (a - g) / 2, p = w += 2, m = 0, F = 0, D = 0;
    if (s <= 0) {
      e = `(...) Tj
`, e += "% Width of Text: " + co(e, t, s = 12).width + ", FieldWidth:" + o + `
`;
      break;
    }
    for (var v = "", E = 0, P = 0; P < n.length; P++) if (n.hasOwnProperty(P)) {
      var V = !1;
      if (n[P].length !== 1 && D !== n[P].length - 1) {
        if ((g + 2) * (E + 2) + 2 > a) continue A;
        v += n[P][D], V = !0, F = P, P--;
      } else {
        v = (v += n[P][D] + " ").substr(v.length - 1) == " " ? v.substr(0, v.length - 1) : v;
        var J = parseInt(P), Y = c(J, v, s), W = P >= n.length - 1;
        if (Y && !W) {
          v += " ", D = 0;
          continue;
        }
        if (Y || W) {
          if (W) F = J;
          else if (t.multiline && (g + 2) * (E + 2) + 2 > a) continue A;
        } else {
          if (!t.multiline || (g + 2) * (E + 2) + 2 > a) continue A;
          F = J;
        }
      }
      for (var O = "", q = m; q <= F; q++) {
        var lA = n[q];
        if (t.multiline) {
          if (q === F) {
            O += lA[D] + " ", D = (D + 1) % lA.length;
            continue;
          }
          if (q === m) {
            O += lA[lA.length - 1] + " ";
            continue;
          }
        }
        O += lA[0] + " ";
      }
      switch (O = O.substr(O.length - 1) == " " ? O.substr(0, O.length - 1) : O, h = co(O, t, s).width, t.textAlign) {
        case "right":
          d = o - h - 2;
          break;
        case "center":
          d = (o - h) / 2;
          break;
        case "left":
        default:
          d = 2;
      }
      e += xe(d) + " " + xe(p) + ` Td
`, e += "(" + Us(O) + `) Tj
`, e += -xe(d) + ` 0 Td
`, p = -(s + 2), h = 0, m = V ? F : F + 1, E++, v = "";
    }
    break;
  }
  return r.text = e, r.fontSize = s, r;
}, co = function(t, e, A) {
  var r = e.scope.internal.getFont(e.fontName, e.fontStyle), n = e.scope.getStringUnitWidth(t, { font: r, fontSize: parseFloat(A), charSpace: 0 }) * parseFloat(A);
  return { height: e.scope.getStringUnitWidth("3", { font: r, fontSize: parseFloat(A), charSpace: 0 }) * parseFloat(A) * 1.5, width: n };
}, YB = { fields: [], xForms: [], acroFormDictionaryRoot: null, printedOut: !1, internal: null, isInitialized: !1 }, JB = function(t, e) {
  var A = { type: "reference", object: t };
  e.internal.getPageInfo(t.page).pageContext.annotations.find(function(r) {
    return r.type === A.type && r.object === A.object;
  }) === void 0 && e.internal.getPageInfo(t.page).pageContext.annotations.push(A);
}, $B = function(t, e) {
  for (var A in t) if (t.hasOwnProperty(A)) {
    var r = A, n = t[A];
    e.internal.newObjectDeferredBegin(n.objId, !0), et(n) === "object" && typeof n.putStream == "function" && n.putStream(), delete t[r];
  }
}, ZB = function(t, e) {
  if (e.scope = t, t.internal !== void 0 && (t.internal.acroformPlugin === void 0 || t.internal.acroformPlugin.isInitialized === !1)) {
    if (An.FieldNum = 0, t.internal.acroformPlugin = JSON.parse(JSON.stringify(YB)), t.internal.acroformPlugin.acroFormDictionaryRoot) throw new Error("Exception while creating AcroformDictionary");
    Cu = t.internal.scaleFactor, t.internal.acroformPlugin.acroFormDictionaryRoot = new qd(), t.internal.acroformPlugin.acroFormDictionaryRoot.scope = t, t.internal.acroformPlugin.acroFormDictionaryRoot._eventID = t.internal.events.subscribe("postPutResources", function() {
      (function(A) {
        A.internal.events.unsubscribe(A.internal.acroformPlugin.acroFormDictionaryRoot._eventID), delete A.internal.acroformPlugin.acroFormDictionaryRoot._eventID, A.internal.acroformPlugin.printedOut = !0;
      })(t);
    }), t.internal.events.subscribe("buildDocument", function() {
      (function(A) {
        A.internal.acroformPlugin.acroFormDictionaryRoot.objId = void 0;
        var r = A.internal.acroformPlugin.acroFormDictionaryRoot.Fields;
        for (var n in r) if (r.hasOwnProperty(n)) {
          var s = r[n];
          s.objId = void 0, s.hasAnnotation && JB(s, A);
        }
      })(t);
    }), t.internal.events.subscribe("putCatalog", function() {
      (function(A) {
        if (A.internal.acroformPlugin.acroFormDictionaryRoot === void 0) throw new Error("putCatalogCallback: Root missing.");
        A.internal.write("/AcroForm " + A.internal.acroformPlugin.acroFormDictionaryRoot.objId + " 0 R");
      })(t);
    }), t.internal.events.subscribe("postPutPages", function(A) {
      (function(r, n) {
        var s = !r;
        for (var a in r || (n.internal.newObjectDeferredBegin(n.internal.acroformPlugin.acroFormDictionaryRoot.objId, !0), n.internal.acroformPlugin.acroFormDictionaryRoot.putStream()), r = r || n.internal.acroformPlugin.acroFormDictionaryRoot.Kids) if (r.hasOwnProperty(a)) {
          var o = r[a], c = [], d = o.Rect;
          if (o.Rect && (o.Rect = XB(o.Rect, n)), n.internal.newObjectDeferredBegin(o.objId, !0), o.DA = ge.createDefaultAppearanceStream(o), et(o) === "object" && typeof o.getKeyValueListForStream == "function" && (c = o.getKeyValueListForStream()), o.Rect = d, o.hasAppearanceStream && !o.appearanceStreamContent) {
            var h = zB(o);
            c.push({ key: "AP", value: "<</N " + h + ">>" }), n.internal.acroformPlugin.xForms.push(h);
          }
          if (o.appearanceStreamContent) {
            var g = "";
            for (var w in o.appearanceStreamContent) if (o.appearanceStreamContent.hasOwnProperty(w)) {
              var p = o.appearanceStreamContent[w];
              if (g += "/" + w + " ", g += "<<", Object.keys(p).length >= 1 || Array.isArray(p)) {
                for (var a in p) if (p.hasOwnProperty(a)) {
                  var m = p[a];
                  typeof m == "function" && (m = m.call(n, o)), g += "/" + a + " " + m + " ", n.internal.acroformPlugin.xForms.indexOf(m) >= 0 || n.internal.acroformPlugin.xForms.push(m);
                }
              } else typeof (m = p) == "function" && (m = m.call(n, o)), g += "/" + a + " " + m, n.internal.acroformPlugin.xForms.indexOf(m) >= 0 || n.internal.acroformPlugin.xForms.push(m);
              g += ">>";
            }
            c.push({ key: "AP", value: `<<
` + g + ">>" });
          }
          n.internal.putStream({ additionalKeyValues: c, objectId: o.objId }), n.internal.out("endobj");
        }
        s && $B(n.internal.acroformPlugin.xForms, n);
      })(A, t);
    }), t.internal.acroformPlugin.isInitialized = !0;
  }
}, Gd = vt.__acroform__.arrayToPdfArray = function(t, e, A) {
  var r = function(a) {
    return a;
  };
  if (Array.isArray(t)) {
    for (var n = "[", s = 0; s < t.length; s++) switch (s !== 0 && (n += " "), et(t[s])) {
      case "boolean":
      case "number":
      case "object":
        n += t[s].toString();
        break;
      case "string":
        t[s].substr(0, 1) !== "/" ? (e !== void 0 && A && (r = A.internal.getEncryptor(e)), n += "(" + Us(r(t[s].toString())) + ")") : n += t[s].toString();
    }
    return n += "]";
  }
  throw new Error("Invalid argument passed to jsPDF.__acroform__.arrayToPdfArray");
}, fc = function(t, e, A) {
  var r = function(n) {
    return n;
  };
  return e !== void 0 && A && (r = A.internal.getEncryptor(e)), (t = t || "").toString(), t = "(" + Us(r(t)) + ")";
}, cn = function() {
  this._objId = void 0, this._scope = void 0, Object.defineProperty(this, "objId", { get: function() {
    if (this._objId === void 0) {
      if (this.scope === void 0) return;
      this._objId = this.scope.internal.newObjectDeferred();
    }
    return this._objId;
  }, set: function(t) {
    this._objId = t;
  } }), Object.defineProperty(this, "scope", { value: this._scope, writable: !0 });
};
cn.prototype.toString = function() {
  return this.objId + " 0 R";
}, cn.prototype.putStream = function() {
  var t = this.getKeyValueListForStream();
  this.scope.internal.putStream({ data: this.stream, additionalKeyValues: t, objectId: this.objId }), this.scope.internal.out("endobj");
}, cn.prototype.getKeyValueListForStream = function() {
  var t = [], e = Object.getOwnPropertyNames(this).filter(function(s) {
    return s != "content" && s != "appearanceStreamContent" && s != "scope" && s != "objId" && s.substring(0, 1) != "_";
  });
  for (var A in e) if (Object.getOwnPropertyDescriptor(this, e[A]).configurable === !1) {
    var r = e[A], n = this[r];
    n && (Array.isArray(n) ? t.push({ key: r, value: Gd(n, this.objId, this.scope) }) : n instanceof cn ? (n.scope = this.scope, t.push({ key: r, value: n.objId + " 0 R" })) : typeof n != "function" && t.push({ key: r, value: n }));
  }
  return t;
};
var jd = function() {
  cn.call(this), Object.defineProperty(this, "Type", { value: "/XObject", configurable: !1, writable: !0 }), Object.defineProperty(this, "Subtype", { value: "/Form", configurable: !1, writable: !0 }), Object.defineProperty(this, "FormType", { value: 1, configurable: !1, writable: !0 });
  var t, e = [];
  Object.defineProperty(this, "BBox", { configurable: !1, get: function() {
    return e;
  }, set: function(A) {
    e = A;
  } }), Object.defineProperty(this, "Resources", { value: "2 0 R", configurable: !1, writable: !0 }), Object.defineProperty(this, "stream", { enumerable: !1, configurable: !0, set: function(A) {
    t = A.trim();
  }, get: function() {
    return t || null;
  } });
};
yr(jd, cn);
var qd = function() {
  cn.call(this);
  var t, e = [];
  Object.defineProperty(this, "Kids", { enumerable: !1, configurable: !0, get: function() {
    return e.length > 0 ? e : void 0;
  } }), Object.defineProperty(this, "Fields", { enumerable: !1, configurable: !1, get: function() {
    return e;
  } }), Object.defineProperty(this, "DA", { enumerable: !1, configurable: !1, get: function() {
    if (t) {
      var A = function(r) {
        return r;
      };
      return this.scope && (A = this.scope.internal.getEncryptor(this.objId)), "(" + Us(A(t)) + ")";
    }
  }, set: function(A) {
    t = A;
  } });
};
yr(qd, cn);
var An = function t() {
  cn.call(this);
  var e = 4;
  Object.defineProperty(this, "F", { enumerable: !1, configurable: !1, get: function() {
    return e;
  }, set: function(v) {
    if (isNaN(v)) throw new Error('Invalid value "' + v + '" for attribute F supplied.');
    e = v;
  } }), Object.defineProperty(this, "showWhenPrinted", { enumerable: !0, configurable: !0, get: function() {
    return !!Ut(e, 3);
  }, set: function(v) {
    v ? this.F = Lt(e, 3) : this.F = Et(e, 3);
  } });
  var A = 0;
  Object.defineProperty(this, "Ff", { enumerable: !1, configurable: !1, get: function() {
    return A;
  }, set: function(v) {
    if (isNaN(v)) throw new Error('Invalid value "' + v + '" for attribute Ff supplied.');
    A = v;
  } });
  var r = [];
  Object.defineProperty(this, "Rect", { enumerable: !1, configurable: !1, get: function() {
    if (r.length !== 0) return r;
  }, set: function(v) {
    r = v !== void 0 ? v : [];
  } }), Object.defineProperty(this, "x", { enumerable: !0, configurable: !0, get: function() {
    return !r || isNaN(r[0]) ? 0 : r[0];
  }, set: function(v) {
    r[0] = v;
  } }), Object.defineProperty(this, "y", { enumerable: !0, configurable: !0, get: function() {
    return !r || isNaN(r[1]) ? 0 : r[1];
  }, set: function(v) {
    r[1] = v;
  } }), Object.defineProperty(this, "width", { enumerable: !0, configurable: !0, get: function() {
    return !r || isNaN(r[2]) ? 0 : r[2];
  }, set: function(v) {
    r[2] = v;
  } }), Object.defineProperty(this, "height", { enumerable: !0, configurable: !0, get: function() {
    return !r || isNaN(r[3]) ? 0 : r[3];
  }, set: function(v) {
    r[3] = v;
  } });
  var n = "";
  Object.defineProperty(this, "FT", { enumerable: !0, configurable: !1, get: function() {
    return n;
  }, set: function(v) {
    switch (v) {
      case "/Btn":
      case "/Tx":
      case "/Ch":
      case "/Sig":
        n = v;
        break;
      default:
        throw new Error('Invalid value "' + v + '" for attribute FT supplied.');
    }
  } });
  var s = null;
  Object.defineProperty(this, "T", { enumerable: !0, configurable: !1, get: function() {
    if (!s || s.length < 1) {
      if (this instanceof zo) return;
      s = "FieldObject" + t.FieldNum++;
    }
    var v = function(E) {
      return E;
    };
    return this.scope && (v = this.scope.internal.getEncryptor(this.objId)), "(" + Us(v(s)) + ")";
  }, set: function(v) {
    s = v.toString();
  } }), Object.defineProperty(this, "fieldName", { configurable: !0, enumerable: !0, get: function() {
    return s;
  }, set: function(v) {
    s = v;
  } });
  var a = "helvetica";
  Object.defineProperty(this, "fontName", { enumerable: !0, configurable: !0, get: function() {
    return a;
  }, set: function(v) {
    a = v;
  } });
  var o = "normal";
  Object.defineProperty(this, "fontStyle", { enumerable: !0, configurable: !0, get: function() {
    return o;
  }, set: function(v) {
    o = v;
  } });
  var c = 0;
  Object.defineProperty(this, "fontSize", { enumerable: !0, configurable: !0, get: function() {
    return c;
  }, set: function(v) {
    c = v;
  } });
  var d = void 0;
  Object.defineProperty(this, "maxFontSize", { enumerable: !0, configurable: !0, get: function() {
    return d === void 0 ? 50 / Cu : d;
  }, set: function(v) {
    d = v;
  } });
  var h = "black";
  Object.defineProperty(this, "color", { enumerable: !0, configurable: !0, get: function() {
    return h;
  }, set: function(v) {
    h = v;
  } });
  var g = "/F1 0 Tf 0 g";
  Object.defineProperty(this, "DA", { enumerable: !0, configurable: !1, get: function() {
    if (!(!g || this instanceof zo || this instanceof bs)) return fc(g, this.objId, this.scope);
  }, set: function(v) {
    v = v.toString(), g = v;
  } });
  var w = null;
  Object.defineProperty(this, "DV", { enumerable: !1, configurable: !1, get: function() {
    if (w) return this instanceof Kt ? w : fc(w, this.objId, this.scope);
  }, set: function(v) {
    v = v.toString(), w = this instanceof Kt ? v : v.substr(0, 1) === "(" ? Js(v.substr(1, v.length - 2)) : Js(v);
  } }), Object.defineProperty(this, "defaultValue", { enumerable: !0, configurable: !0, get: function() {
    return this instanceof Kt ? Js(w.substr(1, w.length - 1)) : w;
  }, set: function(v) {
    v = v.toString(), w = this instanceof Kt ? "/" + v : v;
  } });
  var p = null;
  Object.defineProperty(this, "_V", { enumerable: !1, configurable: !1, get: function() {
    if (p) return p;
  }, set: function(v) {
    this.V = v;
  } }), Object.defineProperty(this, "V", { enumerable: !1, configurable: !1, get: function() {
    if (p) return this instanceof Kt ? p : fc(p, this.objId, this.scope);
  }, set: function(v) {
    v = v.toString(), p = this instanceof Kt ? v : v.substr(0, 1) === "(" ? Js(v.substr(1, v.length - 2)) : Js(v);
  } }), Object.defineProperty(this, "value", { enumerable: !0, configurable: !0, get: function() {
    return this instanceof Kt ? Js(p.substr(1, p.length - 1)) : p;
  }, set: function(v) {
    v = v.toString(), p = this instanceof Kt ? "/" + v : v;
  } }), Object.defineProperty(this, "hasAnnotation", { enumerable: !0, configurable: !0, get: function() {
    return this.Rect;
  } }), Object.defineProperty(this, "Type", { enumerable: !0, configurable: !1, get: function() {
    return this.hasAnnotation ? "/Annot" : null;
  } }), Object.defineProperty(this, "Subtype", { enumerable: !0, configurable: !1, get: function() {
    return this.hasAnnotation ? "/Widget" : null;
  } });
  var m, F = !1;
  Object.defineProperty(this, "hasAppearanceStream", { enumerable: !0, configurable: !0, get: function() {
    return F;
  }, set: function(v) {
    v = !!v, F = v;
  } }), Object.defineProperty(this, "page", { enumerable: !0, configurable: !0, get: function() {
    if (m) return m;
  }, set: function(v) {
    m = v;
  } }), Object.defineProperty(this, "readOnly", { enumerable: !0, configurable: !0, get: function() {
    return !!Ut(this.Ff, 1);
  }, set: function(v) {
    v ? this.Ff = Lt(this.Ff, 1) : this.Ff = Et(this.Ff, 1);
  } }), Object.defineProperty(this, "required", { enumerable: !0, configurable: !0, get: function() {
    return !!Ut(this.Ff, 2);
  }, set: function(v) {
    v ? this.Ff = Lt(this.Ff, 2) : this.Ff = Et(this.Ff, 2);
  } }), Object.defineProperty(this, "noExport", { enumerable: !0, configurable: !0, get: function() {
    return !!Ut(this.Ff, 3);
  }, set: function(v) {
    v ? this.Ff = Lt(this.Ff, 3) : this.Ff = Et(this.Ff, 3);
  } });
  var D = null;
  Object.defineProperty(this, "Q", { enumerable: !0, configurable: !1, get: function() {
    if (D !== null) return D;
  }, set: function(v) {
    if ([0, 1, 2].indexOf(v) === -1) throw new Error('Invalid value "' + v + '" for attribute Q supplied.');
    D = v;
  } }), Object.defineProperty(this, "textAlign", { get: function() {
    var v;
    switch (D) {
      case 0:
      default:
        v = "left";
        break;
      case 1:
        v = "center";
        break;
      case 2:
        v = "right";
    }
    return v;
  }, configurable: !0, enumerable: !0, set: function(v) {
    switch (v) {
      case "right":
      case 2:
        D = 2;
        break;
      case "center":
      case 1:
        D = 1;
        break;
      case "left":
      case 0:
      default:
        D = 0;
    }
  } });
};
yr(An, cn);
var fi = function() {
  An.call(this), this.FT = "/Ch", this.V = "()", this.fontName = "zapfdingbats";
  var t = 0;
  Object.defineProperty(this, "TI", { enumerable: !0, configurable: !1, get: function() {
    return t;
  }, set: function(A) {
    t = A;
  } }), Object.defineProperty(this, "topIndex", { enumerable: !0, configurable: !0, get: function() {
    return t;
  }, set: function(A) {
    t = A;
  } });
  var e = [];
  Object.defineProperty(this, "Opt", { enumerable: !0, configurable: !1, get: function() {
    return Gd(e, this.objId, this.scope);
  }, set: function(A) {
    var r, n;
    n = [], typeof (r = A) == "string" && (n = function(s, a, o) {
      o || (o = 1);
      for (var c, d = []; c = a.exec(s); ) d.push(c[o]);
      return d;
    }(r, /\((.*?)\)/g)), e = n;
  } }), this.getOptions = function() {
    return e;
  }, this.setOptions = function(A) {
    e = A, this.sort && e.sort();
  }, this.addOption = function(A) {
    A = (A = A || "").toString(), e.push(A), this.sort && e.sort();
  }, this.removeOption = function(A, r) {
    for (r = r || !1, A = (A = A || "").toString(); e.indexOf(A) !== -1 && (e.splice(e.indexOf(A), 1), r !== !1); ) ;
  }, Object.defineProperty(this, "combo", { enumerable: !0, configurable: !0, get: function() {
    return !!Ut(this.Ff, 18);
  }, set: function(A) {
    A ? this.Ff = Lt(this.Ff, 18) : this.Ff = Et(this.Ff, 18);
  } }), Object.defineProperty(this, "edit", { enumerable: !0, configurable: !0, get: function() {
    return !!Ut(this.Ff, 19);
  }, set: function(A) {
    this.combo === !0 && (A ? this.Ff = Lt(this.Ff, 19) : this.Ff = Et(this.Ff, 19));
  } }), Object.defineProperty(this, "sort", { enumerable: !0, configurable: !0, get: function() {
    return !!Ut(this.Ff, 20);
  }, set: function(A) {
    A ? (this.Ff = Lt(this.Ff, 20), e.sort()) : this.Ff = Et(this.Ff, 20);
  } }), Object.defineProperty(this, "multiSelect", { enumerable: !0, configurable: !0, get: function() {
    return !!Ut(this.Ff, 22);
  }, set: function(A) {
    A ? this.Ff = Lt(this.Ff, 22) : this.Ff = Et(this.Ff, 22);
  } }), Object.defineProperty(this, "doNotSpellCheck", { enumerable: !0, configurable: !0, get: function() {
    return !!Ut(this.Ff, 23);
  }, set: function(A) {
    A ? this.Ff = Lt(this.Ff, 23) : this.Ff = Et(this.Ff, 23);
  } }), Object.defineProperty(this, "commitOnSelChange", { enumerable: !0, configurable: !0, get: function() {
    return !!Ut(this.Ff, 27);
  }, set: function(A) {
    A ? this.Ff = Lt(this.Ff, 27) : this.Ff = Et(this.Ff, 27);
  } }), this.hasAppearanceStream = !1;
};
yr(fi, An);
var di = function() {
  fi.call(this), this.fontName = "helvetica", this.combo = !1;
};
yr(di, fi);
var hi = function() {
  di.call(this), this.combo = !0;
};
yr(hi, di);
var Po = function() {
  hi.call(this), this.edit = !0;
};
yr(Po, hi);
var Kt = function() {
  An.call(this), this.FT = "/Btn", Object.defineProperty(this, "noToggleToOff", { enumerable: !0, configurable: !0, get: function() {
    return !!Ut(this.Ff, 15);
  }, set: function(A) {
    A ? this.Ff = Lt(this.Ff, 15) : this.Ff = Et(this.Ff, 15);
  } }), Object.defineProperty(this, "radio", { enumerable: !0, configurable: !0, get: function() {
    return !!Ut(this.Ff, 16);
  }, set: function(A) {
    A ? this.Ff = Lt(this.Ff, 16) : this.Ff = Et(this.Ff, 16);
  } }), Object.defineProperty(this, "pushButton", { enumerable: !0, configurable: !0, get: function() {
    return !!Ut(this.Ff, 17);
  }, set: function(A) {
    A ? this.Ff = Lt(this.Ff, 17) : this.Ff = Et(this.Ff, 17);
  } }), Object.defineProperty(this, "radioIsUnison", { enumerable: !0, configurable: !0, get: function() {
    return !!Ut(this.Ff, 26);
  }, set: function(A) {
    A ? this.Ff = Lt(this.Ff, 26) : this.Ff = Et(this.Ff, 26);
  } });
  var t, e = {};
  Object.defineProperty(this, "MK", { enumerable: !1, configurable: !1, get: function() {
    var A = function(s) {
      return s;
    };
    if (this.scope && (A = this.scope.internal.getEncryptor(this.objId)), Object.keys(e).length !== 0) {
      var r, n = [];
      for (r in n.push("<<"), e) n.push("/" + r + " (" + Us(A(e[r])) + ")");
      return n.push(">>"), n.join(`
`);
    }
  }, set: function(A) {
    et(A) === "object" && (e = A);
  } }), Object.defineProperty(this, "caption", { enumerable: !0, configurable: !0, get: function() {
    return e.CA || "";
  }, set: function(A) {
    typeof A == "string" && (e.CA = A);
  } }), Object.defineProperty(this, "AS", { enumerable: !1, configurable: !1, get: function() {
    return t;
  }, set: function(A) {
    t = A;
  } }), Object.defineProperty(this, "appearanceState", { enumerable: !0, configurable: !0, get: function() {
    return t.substr(1, t.length - 1);
  }, set: function(A) {
    t = "/" + A;
  } });
};
yr(Kt, An);
var Oo = function() {
  Kt.call(this), this.pushButton = !0;
};
yr(Oo, Kt);
var gi = function() {
  Kt.call(this), this.radio = !0, this.pushButton = !1;
  var t = [];
  Object.defineProperty(this, "Kids", { enumerable: !0, configurable: !1, get: function() {
    return t;
  }, set: function(e) {
    t = e !== void 0 ? e : [];
  } });
};
yr(gi, Kt);
var zo = function() {
  var t, e;
  An.call(this), Object.defineProperty(this, "Parent", { enumerable: !1, configurable: !1, get: function() {
    return t;
  }, set: function(n) {
    t = n;
  } }), Object.defineProperty(this, "optionName", { enumerable: !1, configurable: !0, get: function() {
    return e;
  }, set: function(n) {
    e = n;
  } });
  var A, r = {};
  Object.defineProperty(this, "MK", { enumerable: !1, configurable: !1, get: function() {
    var n = function(o) {
      return o;
    };
    this.scope && (n = this.scope.internal.getEncryptor(this.objId));
    var s, a = [];
    for (s in a.push("<<"), r) a.push("/" + s + " (" + Us(n(r[s])) + ")");
    return a.push(">>"), a.join(`
`);
  }, set: function(n) {
    et(n) === "object" && (r = n);
  } }), Object.defineProperty(this, "caption", { enumerable: !0, configurable: !0, get: function() {
    return r.CA || "";
  }, set: function(n) {
    typeof n == "string" && (r.CA = n);
  } }), Object.defineProperty(this, "AS", { enumerable: !1, configurable: !1, get: function() {
    return A;
  }, set: function(n) {
    A = n;
  } }), Object.defineProperty(this, "appearanceState", { enumerable: !0, configurable: !0, get: function() {
    return A.substr(1, A.length - 1);
  }, set: function(n) {
    A = "/" + n;
  } }), this.caption = "l", this.appearanceState = "Off", this._AppearanceType = ge.RadioButton.Circle, this.appearanceStreamContent = this._AppearanceType.createAppearanceStream(this.optionName);
};
yr(zo, An), gi.prototype.setAppearance = function(t) {
  if (!("createAppearanceStream" in t) || !("getCA" in t)) throw new Error("Couldn't assign Appearance to RadioButton. Appearance was Invalid!");
  for (var e in this.Kids) if (this.Kids.hasOwnProperty(e)) {
    var A = this.Kids[e];
    A.appearanceStreamContent = t.createAppearanceStream(A.optionName), A.caption = t.getCA();
  }
}, gi.prototype.createOption = function(t) {
  var e = new zo();
  return e.Parent = this, e.optionName = t, this.Kids.push(e), Aw.call(this.scope, e), e;
};
var Ro = function() {
  Kt.call(this), this.fontName = "zapfdingbats", this.caption = "3", this.appearanceState = "On", this.value = "On", this.textAlign = "center", this.appearanceStreamContent = ge.CheckBox.createAppearanceStream();
};
yr(Ro, Kt);
var bs = function() {
  An.call(this), this.FT = "/Tx", Object.defineProperty(this, "multiline", { enumerable: !0, configurable: !0, get: function() {
    return !!Ut(this.Ff, 13);
  }, set: function(e) {
    e ? this.Ff = Lt(this.Ff, 13) : this.Ff = Et(this.Ff, 13);
  } }), Object.defineProperty(this, "fileSelect", { enumerable: !0, configurable: !0, get: function() {
    return !!Ut(this.Ff, 21);
  }, set: function(e) {
    e ? this.Ff = Lt(this.Ff, 21) : this.Ff = Et(this.Ff, 21);
  } }), Object.defineProperty(this, "doNotSpellCheck", { enumerable: !0, configurable: !0, get: function() {
    return !!Ut(this.Ff, 23);
  }, set: function(e) {
    e ? this.Ff = Lt(this.Ff, 23) : this.Ff = Et(this.Ff, 23);
  } }), Object.defineProperty(this, "doNotScroll", { enumerable: !0, configurable: !0, get: function() {
    return !!Ut(this.Ff, 24);
  }, set: function(e) {
    e ? this.Ff = Lt(this.Ff, 24) : this.Ff = Et(this.Ff, 24);
  } }), Object.defineProperty(this, "comb", { enumerable: !0, configurable: !0, get: function() {
    return !!Ut(this.Ff, 25);
  }, set: function(e) {
    e ? this.Ff = Lt(this.Ff, 25) : this.Ff = Et(this.Ff, 25);
  } }), Object.defineProperty(this, "richText", { enumerable: !0, configurable: !0, get: function() {
    return !!Ut(this.Ff, 26);
  }, set: function(e) {
    e ? this.Ff = Lt(this.Ff, 26) : this.Ff = Et(this.Ff, 26);
  } });
  var t = null;
  Object.defineProperty(this, "MaxLen", { enumerable: !0, configurable: !1, get: function() {
    return t;
  }, set: function(e) {
    t = e;
  } }), Object.defineProperty(this, "maxLength", { enumerable: !0, configurable: !0, get: function() {
    return t;
  }, set: function(e) {
    Number.isInteger(e) && (t = e);
  } }), Object.defineProperty(this, "hasAppearanceStream", { enumerable: !0, configurable: !0, get: function() {
    return this.V || this.DV;
  } });
};
yr(bs, An);
var Ko = function() {
  bs.call(this), Object.defineProperty(this, "password", { enumerable: !0, configurable: !0, get: function() {
    return !!Ut(this.Ff, 14);
  }, set: function(t) {
    t ? this.Ff = Lt(this.Ff, 14) : this.Ff = Et(this.Ff, 14);
  } }), this.password = !0;
};
yr(Ko, bs);
var ge = { CheckBox: { createAppearanceStream: function() {
  return { N: { On: ge.CheckBox.YesNormal }, D: { On: ge.CheckBox.YesPushDown, Off: ge.CheckBox.OffPushDown } };
}, YesPushDown: function(t) {
  var e = ln(t);
  e.scope = t.scope;
  var A = [], r = t.scope.internal.getFont(t.fontName, t.fontStyle).id, n = t.scope.__private__.encodeColorString(t.color), s = Wc(t, t.caption);
  return A.push("0.749023 g"), A.push("0 0 " + xe(ge.internal.getWidth(t)) + " " + xe(ge.internal.getHeight(t)) + " re"), A.push("f"), A.push("BMC"), A.push("q"), A.push("0 0 1 rg"), A.push("/" + r + " " + xe(s.fontSize) + " Tf " + n), A.push("BT"), A.push(s.text), A.push("ET"), A.push("Q"), A.push("EMC"), e.stream = A.join(`
`), e;
}, YesNormal: function(t) {
  var e = ln(t);
  e.scope = t.scope;
  var A = t.scope.internal.getFont(t.fontName, t.fontStyle).id, r = t.scope.__private__.encodeColorString(t.color), n = [], s = ge.internal.getHeight(t), a = ge.internal.getWidth(t), o = Wc(t, t.caption);
  return n.push("1 g"), n.push("0 0 " + xe(a) + " " + xe(s) + " re"), n.push("f"), n.push("q"), n.push("0 0 1 rg"), n.push("0 0 " + xe(a - 1) + " " + xe(s - 1) + " re"), n.push("W"), n.push("n"), n.push("0 g"), n.push("BT"), n.push("/" + A + " " + xe(o.fontSize) + " Tf " + r), n.push(o.text), n.push("ET"), n.push("Q"), e.stream = n.join(`
`), e;
}, OffPushDown: function(t) {
  var e = ln(t);
  e.scope = t.scope;
  var A = [];
  return A.push("0.749023 g"), A.push("0 0 " + xe(ge.internal.getWidth(t)) + " " + xe(ge.internal.getHeight(t)) + " re"), A.push("f"), e.stream = A.join(`
`), e;
} }, RadioButton: { Circle: { createAppearanceStream: function(t) {
  var e = { D: { Off: ge.RadioButton.Circle.OffPushDown }, N: {} };
  return e.N[t] = ge.RadioButton.Circle.YesNormal, e.D[t] = ge.RadioButton.Circle.YesPushDown, e;
}, getCA: function() {
  return "l";
}, YesNormal: function(t) {
  var e = ln(t);
  e.scope = t.scope;
  var A = [], r = ge.internal.getWidth(t) <= ge.internal.getHeight(t) ? ge.internal.getWidth(t) / 4 : ge.internal.getHeight(t) / 4;
  r = Number((0.9 * r).toFixed(5));
  var n = ge.internal.Bezier_C, s = Number((r * n).toFixed(5));
  return A.push("q"), A.push("1 0 0 1 " + qn(ge.internal.getWidth(t) / 2) + " " + qn(ge.internal.getHeight(t) / 2) + " cm"), A.push(r + " 0 m"), A.push(r + " " + s + " " + s + " " + r + " 0 " + r + " c"), A.push("-" + s + " " + r + " -" + r + " " + s + " -" + r + " 0 c"), A.push("-" + r + " -" + s + " -" + s + " -" + r + " 0 -" + r + " c"), A.push(s + " -" + r + " " + r + " -" + s + " " + r + " 0 c"), A.push("f"), A.push("Q"), e.stream = A.join(`
`), e;
}, YesPushDown: function(t) {
  var e = ln(t);
  e.scope = t.scope;
  var A = [], r = ge.internal.getWidth(t) <= ge.internal.getHeight(t) ? ge.internal.getWidth(t) / 4 : ge.internal.getHeight(t) / 4;
  r = Number((0.9 * r).toFixed(5));
  var n = Number((2 * r).toFixed(5)), s = Number((n * ge.internal.Bezier_C).toFixed(5)), a = Number((r * ge.internal.Bezier_C).toFixed(5));
  return A.push("0.749023 g"), A.push("q"), A.push("1 0 0 1 " + qn(ge.internal.getWidth(t) / 2) + " " + qn(ge.internal.getHeight(t) / 2) + " cm"), A.push(n + " 0 m"), A.push(n + " " + s + " " + s + " " + n + " 0 " + n + " c"), A.push("-" + s + " " + n + " -" + n + " " + s + " -" + n + " 0 c"), A.push("-" + n + " -" + s + " -" + s + " -" + n + " 0 -" + n + " c"), A.push(s + " -" + n + " " + n + " -" + s + " " + n + " 0 c"), A.push("f"), A.push("Q"), A.push("0 g"), A.push("q"), A.push("1 0 0 1 " + qn(ge.internal.getWidth(t) / 2) + " " + qn(ge.internal.getHeight(t) / 2) + " cm"), A.push(r + " 0 m"), A.push(r + " " + a + " " + a + " " + r + " 0 " + r + " c"), A.push("-" + a + " " + r + " -" + r + " " + a + " -" + r + " 0 c"), A.push("-" + r + " -" + a + " -" + a + " -" + r + " 0 -" + r + " c"), A.push(a + " -" + r + " " + r + " -" + a + " " + r + " 0 c"), A.push("f"), A.push("Q"), e.stream = A.join(`
`), e;
}, OffPushDown: function(t) {
  var e = ln(t);
  e.scope = t.scope;
  var A = [], r = ge.internal.getWidth(t) <= ge.internal.getHeight(t) ? ge.internal.getWidth(t) / 4 : ge.internal.getHeight(t) / 4;
  r = Number((0.9 * r).toFixed(5));
  var n = Number((2 * r).toFixed(5)), s = Number((n * ge.internal.Bezier_C).toFixed(5));
  return A.push("0.749023 g"), A.push("q"), A.push("1 0 0 1 " + qn(ge.internal.getWidth(t) / 2) + " " + qn(ge.internal.getHeight(t) / 2) + " cm"), A.push(n + " 0 m"), A.push(n + " " + s + " " + s + " " + n + " 0 " + n + " c"), A.push("-" + s + " " + n + " -" + n + " " + s + " -" + n + " 0 c"), A.push("-" + n + " -" + s + " -" + s + " -" + n + " 0 -" + n + " c"), A.push(s + " -" + n + " " + n + " -" + s + " " + n + " 0 c"), A.push("f"), A.push("Q"), e.stream = A.join(`
`), e;
} }, Cross: { createAppearanceStream: function(t) {
  var e = { D: { Off: ge.RadioButton.Cross.OffPushDown }, N: {} };
  return e.N[t] = ge.RadioButton.Cross.YesNormal, e.D[t] = ge.RadioButton.Cross.YesPushDown, e;
}, getCA: function() {
  return "8";
}, YesNormal: function(t) {
  var e = ln(t);
  e.scope = t.scope;
  var A = [], r = ge.internal.calculateCross(t);
  return A.push("q"), A.push("1 1 " + xe(ge.internal.getWidth(t) - 2) + " " + xe(ge.internal.getHeight(t) - 2) + " re"), A.push("W"), A.push("n"), A.push(xe(r.x1.x) + " " + xe(r.x1.y) + " m"), A.push(xe(r.x2.x) + " " + xe(r.x2.y) + " l"), A.push(xe(r.x4.x) + " " + xe(r.x4.y) + " m"), A.push(xe(r.x3.x) + " " + xe(r.x3.y) + " l"), A.push("s"), A.push("Q"), e.stream = A.join(`
`), e;
}, YesPushDown: function(t) {
  var e = ln(t);
  e.scope = t.scope;
  var A = ge.internal.calculateCross(t), r = [];
  return r.push("0.749023 g"), r.push("0 0 " + xe(ge.internal.getWidth(t)) + " " + xe(ge.internal.getHeight(t)) + " re"), r.push("f"), r.push("q"), r.push("1 1 " + xe(ge.internal.getWidth(t) - 2) + " " + xe(ge.internal.getHeight(t) - 2) + " re"), r.push("W"), r.push("n"), r.push(xe(A.x1.x) + " " + xe(A.x1.y) + " m"), r.push(xe(A.x2.x) + " " + xe(A.x2.y) + " l"), r.push(xe(A.x4.x) + " " + xe(A.x4.y) + " m"), r.push(xe(A.x3.x) + " " + xe(A.x3.y) + " l"), r.push("s"), r.push("Q"), e.stream = r.join(`
`), e;
}, OffPushDown: function(t) {
  var e = ln(t);
  e.scope = t.scope;
  var A = [];
  return A.push("0.749023 g"), A.push("0 0 " + xe(ge.internal.getWidth(t)) + " " + xe(ge.internal.getHeight(t)) + " re"), A.push("f"), e.stream = A.join(`
`), e;
} } }, createDefaultAppearanceStream: function(t) {
  var e = t.scope.internal.getFont(t.fontName, t.fontStyle).id, A = t.scope.__private__.encodeColorString(t.color);
  return "/" + e + " " + t.fontSize + " Tf " + A;
} };
ge.internal = { Bezier_C: 0.551915024494, calculateCross: function(t) {
  var e = ge.internal.getWidth(t), A = ge.internal.getHeight(t), r = Math.min(e, A);
  return { x1: { x: (e - r) / 2, y: (A - r) / 2 + r }, x2: { x: (e - r) / 2 + r, y: (A - r) / 2 }, x3: { x: (e - r) / 2, y: (A - r) / 2 }, x4: { x: (e - r) / 2 + r, y: (A - r) / 2 + r } };
} }, ge.internal.getWidth = function(t) {
  var e = 0;
  return et(t) === "object" && (e = pf(t.Rect[2])), e;
}, ge.internal.getHeight = function(t) {
  var e = 0;
  return et(t) === "object" && (e = pf(t.Rect[3])), e;
};
var Aw = vt.addField = function(t) {
  if (ZB(this, t), !(t instanceof An)) throw new Error("Invalid argument passed to jsPDF.addField.");
  var e;
  return (e = t).scope.internal.acroformPlugin.printedOut && (e.scope.internal.acroformPlugin.printedOut = !1, e.scope.internal.acroformPlugin.acroFormDictionaryRoot = null), e.scope.internal.acroformPlugin.acroFormDictionaryRoot.Fields.push(e), t.page = t.scope.internal.getCurrentPageInfo().pageNumber, this;
};
vt.AcroFormChoiceField = fi, vt.AcroFormListBox = di, vt.AcroFormComboBox = hi, vt.AcroFormEditBox = Po, vt.AcroFormButton = Kt, vt.AcroFormPushButton = Oo, vt.AcroFormRadioButton = gi, vt.AcroFormCheckBox = Ro, vt.AcroFormTextField = bs, vt.AcroFormPasswordField = Ko, vt.AcroFormAppearance = ge, vt.AcroForm = { ChoiceField: fi, ListBox: di, ComboBox: hi, EditBox: Po, Button: Kt, PushButton: Oo, RadioButton: gi, CheckBox: Ro, TextField: bs, PasswordField: Ko, Appearance: ge }, Fe.AcroForm = { ChoiceField: fi, ListBox: di, ComboBox: hi, EditBox: Po, Button: Kt, PushButton: Oo, RadioButton: gi, CheckBox: Ro, TextField: bs, PasswordField: Ko, Appearance: ge };
Fe.AcroForm;
function Wd(t) {
  return t.reduce(function(e, A, r) {
    return e[A] = r, e;
  }, {});
}
(function(t) {
  t.__addimage__ = {};
  var e = "UNKNOWN", A = { PNG: [[137, 80, 78, 71]], TIFF: [[77, 77, 0, 42], [73, 73, 42, 0]], JPEG: [[255, 216, 255, 224, void 0, void 0, 74, 70, 73, 70, 0], [255, 216, 255, 225, void 0, void 0, 69, 120, 105, 102, 0, 0], [255, 216, 255, 219], [255, 216, 255, 238]], JPEG2000: [[0, 0, 0, 12, 106, 80, 32, 32]], GIF87a: [[71, 73, 70, 56, 55, 97]], GIF89a: [[71, 73, 70, 56, 57, 97]], WEBP: [[82, 73, 70, 70, void 0, void 0, void 0, void 0, 87, 69, 66, 80]], BMP: [[66, 77], [66, 65], [67, 73], [67, 80], [73, 67], [80, 84]] }, r = t.__addimage__.getImageFileTypeByImageData = function(I, Q) {
    var k, U, R, X, AA, z = e;
    if ((Q = Q || e) === "RGBA" || I.data !== void 0 && I.data instanceof Uint8ClampedArray && "height" in I && "width" in I) return "RGBA";
    if (Y(I)) for (AA in A) for (R = A[AA], k = 0; k < R.length; k += 1) {
      for (X = !0, U = 0; U < R[k].length; U += 1) if (R[k][U] !== void 0 && R[k][U] !== I[U]) {
        X = !1;
        break;
      }
      if (X === !0) {
        z = AA;
        break;
      }
    }
    else for (AA in A) for (R = A[AA], k = 0; k < R.length; k += 1) {
      for (X = !0, U = 0; U < R[k].length; U += 1) if (R[k][U] !== void 0 && R[k][U] !== I.charCodeAt(U)) {
        X = !1;
        break;
      }
      if (X === !0) {
        z = AA;
        break;
      }
    }
    return z === e && Q !== e && (z = Q), z;
  }, n = function I(Q) {
    for (var k = this.internal.write, U = this.internal.putStream, R = (0, this.internal.getFilters)(); R.indexOf("FlateEncode") !== -1; ) R.splice(R.indexOf("FlateEncode"), 1);
    Q.objectId = this.internal.newObject();
    var X = [];
    if (X.push({ key: "Type", value: "/XObject" }), X.push({ key: "Subtype", value: "/Image" }), X.push({ key: "Width", value: Q.width }), X.push({ key: "Height", value: Q.height }), Q.colorSpace === D.INDEXED ? X.push({ key: "ColorSpace", value: "[/Indexed /DeviceRGB " + (Q.palette.length / 3 - 1) + " " + ("sMask" in Q && Q.sMask !== void 0 ? Q.objectId + 2 : Q.objectId + 1) + " 0 R]" }) : (X.push({ key: "ColorSpace", value: "/" + Q.colorSpace }), Q.colorSpace === D.DEVICE_CMYK && X.push({ key: "Decode", value: "[1 0 1 0 1 0 1 0]" })), X.push({ key: "BitsPerComponent", value: Q.bitsPerComponent }), "decodeParameters" in Q && Q.decodeParameters !== void 0 && X.push({ key: "DecodeParms", value: "<<" + Q.decodeParameters + ">>" }), "transparency" in Q && Array.isArray(Q.transparency)) {
      for (var AA = "", z = 0, aA = Q.transparency.length; z < aA; z++) AA += Q.transparency[z] + " " + Q.transparency[z] + " ";
      X.push({ key: "Mask", value: "[" + AA + "]" });
    }
    Q.sMask !== void 0 && X.push({ key: "SMask", value: Q.objectId + 1 + " 0 R" });
    var rA = Q.filter !== void 0 ? ["/" + Q.filter] : void 0;
    if (U({ data: Q.data, additionalKeyValues: X, alreadyAppliedFilters: rA, objectId: Q.objectId }), k("endobj"), "sMask" in Q && Q.sMask !== void 0) {
      var QA = "/Predictor " + Q.predictor + " /Colors 1 /BitsPerComponent " + Q.bitsPerComponent + " /Columns " + Q.width, b = { width: Q.width, height: Q.height, colorSpace: "DeviceGray", bitsPerComponent: Q.bitsPerComponent, decodeParameters: QA, data: Q.sMask };
      "filter" in Q && (b.filter = Q.filter), I.call(this, b);
    }
    if (Q.colorSpace === D.INDEXED) {
      var T = this.internal.newObject();
      U({ data: O(new Uint8Array(Q.palette)), objectId: T }), k("endobj");
    }
  }, s = function() {
    var I = this.internal.collections.addImage_images;
    for (var Q in I) n.call(this, I[Q]);
  }, a = function() {
    var I, Q = this.internal.collections.addImage_images, k = this.internal.write;
    for (var U in Q) k("/I" + (I = Q[U]).index, I.objectId, "0", "R");
  }, o = function() {
    this.internal.collections.addImage_images || (this.internal.collections.addImage_images = {}, this.internal.events.subscribe("putResources", s), this.internal.events.subscribe("putXobjectDict", a));
  }, c = function() {
    var I = this.internal.collections.addImage_images;
    return o.call(this), I;
  }, d = function() {
    return Object.keys(this.internal.collections.addImage_images).length;
  }, h = function(I) {
    return typeof t["process" + I.toUpperCase()] == "function";
  }, g = function(I) {
    return et(I) === "object" && I.nodeType === 1;
  }, w = function(I, Q) {
    if (I.nodeName === "IMG" && I.hasAttribute("src")) {
      var k = "" + I.getAttribute("src");
      if (k.indexOf("data:image/") === 0) return oa(unescape(k).split("base64,").pop());
      var U = t.loadFile(k, !0);
      if (U !== void 0) return U;
    }
    if (I.nodeName === "CANVAS") {
      if (I.width === 0 || I.height === 0) throw new Error("Given canvas must have data. Canvas width: " + I.width + ", height: " + I.height);
      var R;
      switch (Q) {
        case "PNG":
          R = "image/png";
          break;
        case "WEBP":
          R = "image/webp";
          break;
        case "JPEG":
        case "JPG":
        default:
          R = "image/jpeg";
      }
      return oa(I.toDataURL(R, 1).split("base64,").pop());
    }
  }, p = function(I) {
    var Q = this.internal.collections.addImage_images;
    if (Q) {
      for (var k in Q) if (I === Q[k].alias) return Q[k];
    }
  }, m = function(I, Q, k) {
    return I || Q || (I = -96, Q = -96), I < 0 && (I = -1 * k.width * 72 / I / this.internal.scaleFactor), Q < 0 && (Q = -1 * k.height * 72 / Q / this.internal.scaleFactor), I === 0 && (I = Q * k.width / k.height), Q === 0 && (Q = I * k.height / k.width), [I, Q];
  }, F = function(I, Q, k, U, R, X) {
    var AA = m.call(this, k, U, R), z = this.internal.getCoordinateString, aA = this.internal.getVerticalCoordinateString, rA = c.call(this);
    if (k = AA[0], U = AA[1], rA[R.index] = R, X) {
      X *= Math.PI / 180;
      var QA = Math.cos(X), b = Math.sin(X), T = function(j) {
        return j.toFixed(4);
      }, _ = [T(QA), T(b), T(-1 * b), T(QA), 0, 0, "cm"];
    }
    this.internal.write("q"), X ? (this.internal.write([1, "0", "0", 1, z(I), aA(Q + U), "cm"].join(" ")), this.internal.write(_.join(" ")), this.internal.write([z(k), "0", "0", z(U), "0", "0", "cm"].join(" "))) : this.internal.write([z(k), "0", "0", z(U), z(I), aA(Q + U), "cm"].join(" ")), this.isAdvancedAPI() && this.internal.write([1, 0, 0, -1, 0, 0, "cm"].join(" ")), this.internal.write("/I" + R.index + " Do"), this.internal.write("Q");
  }, D = t.color_spaces = { DEVICE_RGB: "DeviceRGB", DEVICE_GRAY: "DeviceGray", DEVICE_CMYK: "DeviceCMYK", CAL_GREY: "CalGray", CAL_RGB: "CalRGB", LAB: "Lab", ICC_BASED: "ICCBased", INDEXED: "Indexed", PATTERN: "Pattern", SEPARATION: "Separation", DEVICE_N: "DeviceN" };
  t.decode = { DCT_DECODE: "DCTDecode", FLATE_DECODE: "FlateDecode", LZW_DECODE: "LZWDecode", JPX_DECODE: "JPXDecode", JBIG2_DECODE: "JBIG2Decode", ASCII85_DECODE: "ASCII85Decode", ASCII_HEX_DECODE: "ASCIIHexDecode", RUN_LENGTH_DECODE: "RunLengthDecode", CCITT_FAX_DECODE: "CCITTFaxDecode" };
  var v = t.image_compression = { NONE: "NONE", FAST: "FAST", MEDIUM: "MEDIUM", SLOW: "SLOW" }, E = t.__addimage__.sHashCode = function(I) {
    var Q, k, U = 0;
    if (typeof I == "string") for (k = I.length, Q = 0; Q < k; Q++) U = (U << 5) - U + I.charCodeAt(Q), U |= 0;
    else if (Y(I)) for (k = I.byteLength / 2, Q = 0; Q < k; Q++) U = (U << 5) - U + I[Q], U |= 0;
    return U;
  }, P = t.__addimage__.validateStringAsBase64 = function(I) {
    (I = I || "").toString().trim();
    var Q = !0;
    return I.length === 0 && (Q = !1), I.length % 4 != 0 && (Q = !1), /^[A-Za-z0-9+/]+$/.test(I.substr(0, I.length - 2)) === !1 && (Q = !1), /^[A-Za-z0-9/][A-Za-z0-9+/]|[A-Za-z0-9+/]=|==$/.test(I.substr(-2)) === !1 && (Q = !1), Q;
  }, V = t.__addimage__.extractImageFromDataUrl = function(I) {
    if (I == null || !(I = I.trim()).startsWith("data:")) return null;
    var Q = I.indexOf(",");
    return Q < 0 ? null : I.substring(0, Q).trim().endsWith("base64") ? I.substring(Q + 1) : null;
  }, J = t.__addimage__.supportsArrayBuffer = function() {
    return typeof ArrayBuffer < "u" && typeof Uint8Array < "u";
  };
  t.__addimage__.isArrayBuffer = function(I) {
    return J() && I instanceof ArrayBuffer;
  };
  var Y = t.__addimage__.isArrayBufferView = function(I) {
    return J() && typeof Uint32Array < "u" && (I instanceof Int8Array || I instanceof Uint8Array || typeof Uint8ClampedArray < "u" && I instanceof Uint8ClampedArray || I instanceof Int16Array || I instanceof Uint16Array || I instanceof Int32Array || I instanceof Uint32Array || I instanceof Float32Array || I instanceof Float64Array);
  }, W = t.__addimage__.binaryStringToUint8Array = function(I) {
    for (var Q = I.length, k = new Uint8Array(Q), U = 0; U < Q; U++) k[U] = I.charCodeAt(U);
    return k;
  }, O = t.__addimage__.arrayBufferToBinaryString = function(I) {
    for (var Q = "", k = Y(I) ? I : new Uint8Array(I), U = 0; U < k.length; U += 8192) Q += String.fromCharCode.apply(null, k.subarray(U, U + 8192));
    return Q;
  };
  t.addImage = function() {
    var I, Q, k, U, R, X, AA, z, aA;
    if (typeof arguments[1] == "number" ? (Q = e, k = arguments[1], U = arguments[2], R = arguments[3], X = arguments[4], AA = arguments[5], z = arguments[6], aA = arguments[7]) : (Q = arguments[1], k = arguments[2], U = arguments[3], R = arguments[4], X = arguments[5], AA = arguments[6], z = arguments[7], aA = arguments[8]), et(I = arguments[0]) === "object" && !g(I) && "imageData" in I) {
      var rA = I;
      I = rA.imageData, Q = rA.format || Q || e, k = rA.x || k || 0, U = rA.y || U || 0, R = rA.w || rA.width || R, X = rA.h || rA.height || X, AA = rA.alias || AA, z = rA.compression || z, aA = rA.rotation || rA.angle || aA;
    }
    var QA = this.internal.getFilters();
    if (z === void 0 && QA.indexOf("FlateEncode") !== -1 && (z = "SLOW"), isNaN(k) || isNaN(U)) throw new Error("Invalid coordinates passed to jsPDF.addImage");
    o.call(this);
    var b = q.call(this, I, Q, AA, z);
    return F.call(this, k, U, R, X, b, aA), this;
  };
  var q = function(I, Q, k, U) {
    var R, X, AA;
    if (typeof I == "string" && r(I) === e) {
      I = unescape(I);
      var z = lA(I, !1);
      (z !== "" || (z = t.loadFile(I, !0)) !== void 0) && (I = z);
    }
    if (g(I) && (I = w(I, Q)), Q = r(I, Q), !h(Q)) throw new Error("addImage does not support files of type '" + Q + "', please ensure that a plugin for '" + Q + "' support is added.");
    if (((AA = k) == null || AA.length === 0) && (k = function(aA) {
      return typeof aA == "string" || Y(aA) ? E(aA) : Y(aA.data) ? E(aA.data) : null;
    }(I)), (R = p.call(this, k)) || (J() && (I instanceof Uint8Array || Q === "RGBA" || (X = I, I = W(I))), R = this["process" + Q.toUpperCase()](I, d.call(this), k, function(aA) {
      return aA && typeof aA == "string" && (aA = aA.toUpperCase()), aA in t.image_compression ? aA : v.NONE;
    }(U), X)), !R) throw new Error("An unknown error occurred whilst processing the image.");
    return R;
  }, lA = t.__addimage__.convertBase64ToBinaryString = function(I, Q) {
    Q = typeof Q != "boolean" || Q;
    var k, U = "";
    if (typeof I == "string") {
      var R;
      k = (R = V(I)) !== null && R !== void 0 ? R : I;
      try {
        U = oa(k);
      } catch (X) {
        if (Q) throw P(k) ? new Error("atob-Error in jsPDF.convertBase64ToBinaryString " + X.message) : new Error("Supplied Data is not a valid base64-String jsPDF.convertBase64ToBinaryString ");
      }
    }
    return U;
  };
  t.getImageProperties = function(I) {
    var Q, k, U = "";
    if (g(I) && (I = w(I)), typeof I == "string" && r(I) === e && ((U = lA(I, !1)) === "" && (U = t.loadFile(I) || ""), I = U), k = r(I), !h(k)) throw new Error("addImage does not support files of type '" + k + "', please ensure that a plugin for '" + k + "' support is added.");
    if (!J() || I instanceof Uint8Array || (I = W(I)), !(Q = this["process" + k.toUpperCase()](I))) throw new Error("An unknown error occurred whilst processing the image");
    return Q.fileType = k, Q;
  };
})(Fe.API), /**
 * @license
 * Copyright (c) 2014 Steven Spungin (TwelveTone LLC)  steven@twelvetone.tv
 *
 * Licensed under the MIT License.
 * http://opensource.org/licenses/mit-license
 */
function(t) {
  var e = function(A) {
    if (A !== void 0 && A != "") return !0;
  };
  Fe.API.events.push(["addPage", function(A) {
    this.internal.getPageInfo(A.pageNumber).pageContext.annotations = [];
  }]), t.events.push(["putPage", function(A) {
    for (var r, n, s, a = this.internal.getCoordinateString, o = this.internal.getVerticalCoordinateString, c = this.internal.getPageInfoByObjId(A.objId), d = A.pageContext.annotations, h = !1, g = 0; g < d.length && !h; g++) switch ((r = d[g]).type) {
      case "link":
        (e(r.options.url) || e(r.options.pageNumber)) && (h = !0);
        break;
      case "reference":
      case "text":
      case "freetext":
        h = !0;
    }
    if (h != 0) {
      this.internal.write("/Annots [");
      for (var w = 0; w < d.length; w++) {
        r = d[w];
        var p = this.internal.pdfEscape, m = this.internal.getEncryptor(A.objId);
        switch (r.type) {
          case "reference":
            this.internal.write(" " + r.object.objId + " 0 R ");
            break;
          case "text":
            var F = this.internal.newAdditionalObject(), D = this.internal.newAdditionalObject(), v = this.internal.getEncryptor(F.objId), E = r.title || "Note";
            s = "<</Type /Annot /Subtype /Text " + (n = "/Rect [" + a(r.bounds.x) + " " + o(r.bounds.y + r.bounds.h) + " " + a(r.bounds.x + r.bounds.w) + " " + o(r.bounds.y) + "] ") + "/Contents (" + p(v(r.contents)) + ")", s += " /Popup " + D.objId + " 0 R", s += " /P " + c.objId + " 0 R", s += " /T (" + p(v(E)) + ") >>", F.content = s;
            var P = F.objId + " 0 R";
            s = "<</Type /Annot /Subtype /Popup " + (n = "/Rect [" + a(r.bounds.x + 30) + " " + o(r.bounds.y + r.bounds.h) + " " + a(r.bounds.x + r.bounds.w + 30) + " " + o(r.bounds.y) + "] ") + " /Parent " + P, r.open && (s += " /Open true"), s += " >>", D.content = s, this.internal.write(F.objId, "0 R", D.objId, "0 R");
            break;
          case "freetext":
            n = "/Rect [" + a(r.bounds.x) + " " + o(r.bounds.y) + " " + a(r.bounds.x + r.bounds.w) + " " + o(r.bounds.y + r.bounds.h) + "] ";
            var V = r.color || "#000000";
            s = "<</Type /Annot /Subtype /FreeText " + n + "/Contents (" + p(m(r.contents)) + ")", s += " /DS(font: Helvetica,sans-serif 12.0pt; text-align:left; color:#" + V + ")", s += " /Border [0 0 0]", s += " >>", this.internal.write(s);
            break;
          case "link":
            if (r.options.name) {
              var J = this.annotations._nameMap[r.options.name];
              r.options.pageNumber = J.page, r.options.top = J.y;
            } else r.options.top || (r.options.top = 0);
            if (n = "/Rect [" + r.finalBounds.x + " " + r.finalBounds.y + " " + r.finalBounds.w + " " + r.finalBounds.h + "] ", s = "", r.options.url) s = "<</Type /Annot /Subtype /Link " + n + "/Border [0 0 0] /A <</S /URI /URI (" + p(m(r.options.url)) + ") >>";
            else if (r.options.pageNumber)
              switch (s = "<</Type /Annot /Subtype /Link " + n + "/Border [0 0 0] /Dest [" + this.internal.getPageInfo(r.options.pageNumber).objId + " 0 R", r.options.magFactor = r.options.magFactor || "XYZ", r.options.magFactor) {
                case "Fit":
                  s += " /Fit]";
                  break;
                case "FitH":
                  s += " /FitH " + r.options.top + "]";
                  break;
                case "FitV":
                  r.options.left = r.options.left || 0, s += " /FitV " + r.options.left + "]";
                  break;
                case "XYZ":
                default:
                  var Y = o(r.options.top);
                  r.options.left = r.options.left || 0, r.options.zoom === void 0 && (r.options.zoom = 0), s += " /XYZ " + r.options.left + " " + Y + " " + r.options.zoom + "]";
              }
            s != "" && (s += " >>", this.internal.write(s));
        }
      }
      this.internal.write("]");
    }
  }]), t.createAnnotation = function(A) {
    var r = this.internal.getCurrentPageInfo();
    switch (A.type) {
      case "link":
        this.link(A.bounds.x, A.bounds.y, A.bounds.w, A.bounds.h, A);
        break;
      case "text":
      case "freetext":
        r.pageContext.annotations.push(A);
    }
  }, t.link = function(A, r, n, s, a) {
    var o = this.internal.getCurrentPageInfo(), c = this.internal.getCoordinateString, d = this.internal.getVerticalCoordinateString;
    o.pageContext.annotations.push({ finalBounds: { x: c(A), y: d(r), w: c(A + n), h: d(r + s) }, options: a, type: "link" });
  }, t.textWithLink = function(A, r, n, s) {
    var a, o, c = this.getTextWidth(A), d = this.internal.getLineHeight() / this.internal.scaleFactor;
    if (s.maxWidth !== void 0) {
      o = s.maxWidth;
      var h = this.splitTextToSize(A, o).length;
      a = Math.ceil(d * h);
    } else o = c, a = d;
    return this.text(A, r, n, s), n += 0.2 * d, s.align === "center" && (r -= c / 2), s.align === "right" && (r -= c), this.link(r, n - d, o, a, s), c;
  }, t.getTextWidth = function(A) {
    var r = this.internal.getFontSize();
    return this.getStringUnitWidth(A) * r / this.internal.scaleFactor;
  };
}(Fe.API), /**
 * @license
 * Copyright (c) 2017 Aras Abbasi
 *
 * Licensed under the MIT License.
 * http://opensource.org/licenses/mit-license
 */
function(t) {
  var e = { 1569: [65152], 1570: [65153, 65154], 1571: [65155, 65156], 1572: [65157, 65158], 1573: [65159, 65160], 1574: [65161, 65162, 65163, 65164], 1575: [65165, 65166], 1576: [65167, 65168, 65169, 65170], 1577: [65171, 65172], 1578: [65173, 65174, 65175, 65176], 1579: [65177, 65178, 65179, 65180], 1580: [65181, 65182, 65183, 65184], 1581: [65185, 65186, 65187, 65188], 1582: [65189, 65190, 65191, 65192], 1583: [65193, 65194], 1584: [65195, 65196], 1585: [65197, 65198], 1586: [65199, 65200], 1587: [65201, 65202, 65203, 65204], 1588: [65205, 65206, 65207, 65208], 1589: [65209, 65210, 65211, 65212], 1590: [65213, 65214, 65215, 65216], 1591: [65217, 65218, 65219, 65220], 1592: [65221, 65222, 65223, 65224], 1593: [65225, 65226, 65227, 65228], 1594: [65229, 65230, 65231, 65232], 1601: [65233, 65234, 65235, 65236], 1602: [65237, 65238, 65239, 65240], 1603: [65241, 65242, 65243, 65244], 1604: [65245, 65246, 65247, 65248], 1605: [65249, 65250, 65251, 65252], 1606: [65253, 65254, 65255, 65256], 1607: [65257, 65258, 65259, 65260], 1608: [65261, 65262], 1609: [65263, 65264, 64488, 64489], 1610: [65265, 65266, 65267, 65268], 1649: [64336, 64337], 1655: [64477], 1657: [64358, 64359, 64360, 64361], 1658: [64350, 64351, 64352, 64353], 1659: [64338, 64339, 64340, 64341], 1662: [64342, 64343, 64344, 64345], 1663: [64354, 64355, 64356, 64357], 1664: [64346, 64347, 64348, 64349], 1667: [64374, 64375, 64376, 64377], 1668: [64370, 64371, 64372, 64373], 1670: [64378, 64379, 64380, 64381], 1671: [64382, 64383, 64384, 64385], 1672: [64392, 64393], 1676: [64388, 64389], 1677: [64386, 64387], 1678: [64390, 64391], 1681: [64396, 64397], 1688: [64394, 64395], 1700: [64362, 64363, 64364, 64365], 1702: [64366, 64367, 64368, 64369], 1705: [64398, 64399, 64400, 64401], 1709: [64467, 64468, 64469, 64470], 1711: [64402, 64403, 64404, 64405], 1713: [64410, 64411, 64412, 64413], 1715: [64406, 64407, 64408, 64409], 1722: [64414, 64415], 1723: [64416, 64417, 64418, 64419], 1726: [64426, 64427, 64428, 64429], 1728: [64420, 64421], 1729: [64422, 64423, 64424, 64425], 1733: [64480, 64481], 1734: [64473, 64474], 1735: [64471, 64472], 1736: [64475, 64476], 1737: [64482, 64483], 1739: [64478, 64479], 1740: [64508, 64509, 64510, 64511], 1744: [64484, 64485, 64486, 64487], 1746: [64430, 64431], 1747: [64432, 64433] }, A = { 65247: { 65154: 65269, 65156: 65271, 65160: 65273, 65166: 65275 }, 65248: { 65154: 65270, 65156: 65272, 65160: 65274, 65166: 65276 }, 65165: { 65247: { 65248: { 65258: 65010 } } }, 1617: { 1612: 64606, 1613: 64607, 1614: 64608, 1615: 64609, 1616: 64610 } }, r = { 1612: 64606, 1613: 64607, 1614: 64608, 1615: 64609, 1616: 64610 }, n = [1570, 1571, 1573, 1575];
  t.__arabicParser__ = {};
  var s = t.__arabicParser__.isInArabicSubstitutionA = function(F) {
    return e[F.charCodeAt(0)] !== void 0;
  }, a = t.__arabicParser__.isArabicLetter = function(F) {
    return typeof F == "string" && /^[\u0600-\u06FF\u0750-\u077F\u08A0-\u08FF\uFB50-\uFDFF\uFE70-\uFEFF]+$/.test(F);
  }, o = t.__arabicParser__.isArabicEndLetter = function(F) {
    return a(F) && s(F) && e[F.charCodeAt(0)].length <= 2;
  }, c = t.__arabicParser__.isArabicAlfLetter = function(F) {
    return a(F) && n.indexOf(F.charCodeAt(0)) >= 0;
  };
  t.__arabicParser__.arabicLetterHasIsolatedForm = function(F) {
    return a(F) && s(F) && e[F.charCodeAt(0)].length >= 1;
  };
  var d = t.__arabicParser__.arabicLetterHasFinalForm = function(F) {
    return a(F) && s(F) && e[F.charCodeAt(0)].length >= 2;
  };
  t.__arabicParser__.arabicLetterHasInitialForm = function(F) {
    return a(F) && s(F) && e[F.charCodeAt(0)].length >= 3;
  };
  var h = t.__arabicParser__.arabicLetterHasMedialForm = function(F) {
    return a(F) && s(F) && e[F.charCodeAt(0)].length == 4;
  }, g = t.__arabicParser__.resolveLigatures = function(F) {
    var D = 0, v = A, E = "", P = 0;
    for (D = 0; D < F.length; D += 1) v[F.charCodeAt(D)] !== void 0 ? (P++, typeof (v = v[F.charCodeAt(D)]) == "number" && (E += String.fromCharCode(v), v = A, P = 0), D === F.length - 1 && (v = A, E += F.charAt(D - (P - 1)), D -= P - 1, P = 0)) : (v = A, E += F.charAt(D - P), D -= P, P = 0);
    return E;
  };
  t.__arabicParser__.isArabicDiacritic = function(F) {
    return F !== void 0 && r[F.charCodeAt(0)] !== void 0;
  };
  var w = t.__arabicParser__.getCorrectForm = function(F, D, v) {
    return a(F) ? s(F) === !1 ? -1 : !d(F) || !a(D) && !a(v) || !a(v) && o(D) || o(F) && !a(D) || o(F) && c(D) || o(F) && o(D) ? 0 : h(F) && a(D) && !o(D) && a(v) && d(v) ? 3 : o(F) || !a(v) ? 1 : 2 : -1;
  }, p = function(F) {
    var D = 0, v = 0, E = 0, P = "", V = "", J = "", Y = (F = F || "").split("\\s+"), W = [];
    for (D = 0; D < Y.length; D += 1) {
      for (W.push(""), v = 0; v < Y[D].length; v += 1) P = Y[D][v], V = Y[D][v - 1], J = Y[D][v + 1], a(P) ? (E = w(P, V, J), W[D] += E !== -1 ? String.fromCharCode(e[P.charCodeAt(0)][E]) : P) : W[D] += P;
      W[D] = g(W[D]);
    }
    return W.join(" ");
  }, m = t.__arabicParser__.processArabic = t.processArabic = function() {
    var F, D = typeof arguments[0] == "string" ? arguments[0] : arguments[0].text, v = [];
    if (Array.isArray(D)) {
      var E = 0;
      for (v = [], E = 0; E < D.length; E += 1) Array.isArray(D[E]) ? v.push([p(D[E][0]), D[E][1], D[E][2]]) : v.push([p(D[E])]);
      F = v;
    } else F = p(D);
    return typeof arguments[0] == "string" ? F : (arguments[0].text = F, arguments[0]);
  };
  t.events.push(["preProcessText", m]);
}(Fe.API), Fe.API.autoPrint = function(t) {
  var e;
  switch ((t = t || {}).variant = t.variant || "non-conform", t.variant) {
    case "javascript":
      this.addJS("print({});");
      break;
    case "non-conform":
    default:
      this.internal.events.subscribe("postPutResources", function() {
        e = this.internal.newObject(), this.internal.out("<<"), this.internal.out("/S /Named"), this.internal.out("/Type /Action"), this.internal.out("/N /Print"), this.internal.out(">>"), this.internal.out("endobj");
      }), this.internal.events.subscribe("putCatalog", function() {
        this.internal.out("/OpenAction " + e + " 0 R");
      });
  }
  return this;
}, /**
 * @license
 * Copyright (c) 2014 Steven Spungin (TwelveTone LLC)  steven@twelvetone.tv
 *
 * Licensed under the MIT License.
 * http://opensource.org/licenses/mit-license
 */
function(t) {
  var e = function() {
    var A = void 0;
    Object.defineProperty(this, "pdf", { get: function() {
      return A;
    }, set: function(o) {
      A = o;
    } });
    var r = 150;
    Object.defineProperty(this, "width", { get: function() {
      return r;
    }, set: function(o) {
      r = isNaN(o) || Number.isInteger(o) === !1 || o < 0 ? 150 : o, this.getContext("2d").pageWrapXEnabled && (this.getContext("2d").pageWrapX = r + 1);
    } });
    var n = 300;
    Object.defineProperty(this, "height", { get: function() {
      return n;
    }, set: function(o) {
      n = isNaN(o) || Number.isInteger(o) === !1 || o < 0 ? 300 : o, this.getContext("2d").pageWrapYEnabled && (this.getContext("2d").pageWrapY = n + 1);
    } });
    var s = [];
    Object.defineProperty(this, "childNodes", { get: function() {
      return s;
    }, set: function(o) {
      s = o;
    } });
    var a = {};
    Object.defineProperty(this, "style", { get: function() {
      return a;
    }, set: function(o) {
      a = o;
    } }), Object.defineProperty(this, "parentNode", {});
  };
  e.prototype.getContext = function(A, r) {
    var n;
    if ((A = A || "2d") !== "2d") return null;
    for (n in r) this.pdf.context2d.hasOwnProperty(n) && (this.pdf.context2d[n] = r[n]);
    return this.pdf.context2d._canvas = this, this.pdf.context2d;
  }, e.prototype.toDataURL = function() {
    throw new Error("toDataURL is not implemented.");
  }, t.events.push(["initialized", function() {
    this.canvas = new e(), this.canvas.pdf = this;
  }]);
}(Fe.API), function(t) {
  var e = { left: 0, top: 0, bottom: 0, right: 0 }, A = !1, r = function() {
    this.internal.__cell__ === void 0 && (this.internal.__cell__ = {}, this.internal.__cell__.padding = 3, this.internal.__cell__.headerFunction = void 0, this.internal.__cell__.margins = Object.assign({}, e), this.internal.__cell__.margins.width = this.getPageWidth(), n.call(this));
  }, n = function() {
    this.internal.__cell__.lastCell = new s(), this.internal.__cell__.pages = 1;
  }, s = function() {
    var c = arguments[0];
    Object.defineProperty(this, "x", { enumerable: !0, get: function() {
      return c;
    }, set: function(F) {
      c = F;
    } });
    var d = arguments[1];
    Object.defineProperty(this, "y", { enumerable: !0, get: function() {
      return d;
    }, set: function(F) {
      d = F;
    } });
    var h = arguments[2];
    Object.defineProperty(this, "width", { enumerable: !0, get: function() {
      return h;
    }, set: function(F) {
      h = F;
    } });
    var g = arguments[3];
    Object.defineProperty(this, "height", { enumerable: !0, get: function() {
      return g;
    }, set: function(F) {
      g = F;
    } });
    var w = arguments[4];
    Object.defineProperty(this, "text", { enumerable: !0, get: function() {
      return w;
    }, set: function(F) {
      w = F;
    } });
    var p = arguments[5];
    Object.defineProperty(this, "lineNumber", { enumerable: !0, get: function() {
      return p;
    }, set: function(F) {
      p = F;
    } });
    var m = arguments[6];
    return Object.defineProperty(this, "align", { enumerable: !0, get: function() {
      return m;
    }, set: function(F) {
      m = F;
    } }), this;
  };
  s.prototype.clone = function() {
    return new s(this.x, this.y, this.width, this.height, this.text, this.lineNumber, this.align);
  }, s.prototype.toArray = function() {
    return [this.x, this.y, this.width, this.height, this.text, this.lineNumber, this.align];
  }, t.setHeaderFunction = function(c) {
    return r.call(this), this.internal.__cell__.headerFunction = typeof c == "function" ? c : void 0, this;
  }, t.getTextDimensions = function(c, d) {
    r.call(this);
    var h = (d = d || {}).fontSize || this.getFontSize(), g = d.font || this.getFont(), w = d.scaleFactor || this.internal.scaleFactor, p = 0, m = 0, F = 0, D = this;
    if (!Array.isArray(c) && typeof c != "string") {
      if (typeof c != "number") throw new Error("getTextDimensions expects text-parameter to be of type String or type Number or an Array of Strings.");
      c = String(c);
    }
    var v = d.maxWidth;
    v > 0 ? typeof c == "string" ? c = this.splitTextToSize(c, v) : Object.prototype.toString.call(c) === "[object Array]" && (c = c.reduce(function(P, V) {
      return P.concat(D.splitTextToSize(V, v));
    }, [])) : c = Array.isArray(c) ? c : [c];
    for (var E = 0; E < c.length; E++) p < (F = this.getStringUnitWidth(c[E], { font: g }) * h) && (p = F);
    return p !== 0 && (m = c.length), { w: p /= w, h: Math.max((m * h * this.getLineHeightFactor() - h * (this.getLineHeightFactor() - 1)) / w, 0) };
  }, t.cellAddPage = function() {
    r.call(this), this.addPage();
    var c = this.internal.__cell__.margins || e;
    return this.internal.__cell__.lastCell = new s(c.left, c.top, void 0, void 0), this.internal.__cell__.pages += 1, this;
  };
  var a = t.cell = function() {
    var c;
    c = arguments[0] instanceof s ? arguments[0] : new s(arguments[0], arguments[1], arguments[2], arguments[3], arguments[4], arguments[5]), r.call(this);
    var d = this.internal.__cell__.lastCell, h = this.internal.__cell__.padding, g = this.internal.__cell__.margins || e, w = this.internal.__cell__.tableHeaderRow, p = this.internal.__cell__.printHeaders;
    return d.lineNumber !== void 0 && (d.lineNumber === c.lineNumber ? (c.x = (d.x || 0) + (d.width || 0), c.y = d.y || 0) : d.y + d.height + c.height + g.bottom > this.getPageHeight() ? (this.cellAddPage(), c.y = g.top, p && w && (this.printHeaderRow(c.lineNumber, !0), c.y += w[0].height)) : c.y = d.y + d.height || c.y), c.text[0] !== void 0 && (this.rect(c.x, c.y, c.width, c.height, A === !0 ? "FD" : void 0), c.align === "right" ? this.text(c.text, c.x + c.width - h, c.y + h, { align: "right", baseline: "top" }) : c.align === "center" ? this.text(c.text, c.x + c.width / 2, c.y + h, { align: "center", baseline: "top", maxWidth: c.width - h - h }) : this.text(c.text, c.x + h, c.y + h, { align: "left", baseline: "top", maxWidth: c.width - h - h })), this.internal.__cell__.lastCell = c, this;
  };
  t.table = function(c, d, h, g, w) {
    if (r.call(this), !h) throw new Error("No data for PDF table.");
    var p, m, F, D, v = [], E = [], P = [], V = {}, J = {}, Y = [], W = [], O = (w = w || {}).autoSize || !1, q = w.printHeaders !== !1, lA = w.css && w.css["font-size"] !== void 0 ? 16 * w.css["font-size"] : w.fontSize || 12, I = w.margins || Object.assign({ width: this.getPageWidth() }, e), Q = typeof w.padding == "number" ? w.padding : 3, k = w.headerBackgroundColor || "#c8c8c8", U = w.headerTextColor || "#000";
    if (n.call(this), this.internal.__cell__.printHeaders = q, this.internal.__cell__.margins = I, this.internal.__cell__.table_font_size = lA, this.internal.__cell__.padding = Q, this.internal.__cell__.headerBackgroundColor = k, this.internal.__cell__.headerTextColor = U, this.setFontSize(lA), g == null) E = v = Object.keys(h[0]), P = v.map(function() {
      return "left";
    });
    else if (Array.isArray(g) && et(g[0]) === "object") for (v = g.map(function(rA) {
      return rA.name;
    }), E = g.map(function(rA) {
      return rA.prompt || rA.name || "";
    }), P = g.map(function(rA) {
      return rA.align || "left";
    }), p = 0; p < g.length; p += 1) J[g[p].name] = g[p].width * (19.049976 / 25.4);
    else Array.isArray(g) && typeof g[0] == "string" && (E = v = g, P = v.map(function() {
      return "left";
    }));
    if (O || Array.isArray(g) && typeof g[0] == "string") for (p = 0; p < v.length; p += 1) {
      for (V[D = v[p]] = h.map(function(rA) {
        return rA[D];
      }), this.setFont(void 0, "bold"), Y.push(this.getTextDimensions(E[p], { fontSize: this.internal.__cell__.table_font_size, scaleFactor: this.internal.scaleFactor }).w), m = V[D], this.setFont(void 0, "normal"), F = 0; F < m.length; F += 1) Y.push(this.getTextDimensions(m[F], { fontSize: this.internal.__cell__.table_font_size, scaleFactor: this.internal.scaleFactor }).w);
      J[D] = Math.max.apply(null, Y) + Q + Q, Y = [];
    }
    if (q) {
      var R = {};
      for (p = 0; p < v.length; p += 1) R[v[p]] = {}, R[v[p]].text = E[p], R[v[p]].align = P[p];
      var X = o.call(this, R, J);
      W = v.map(function(rA) {
        return new s(c, d, J[rA], X, R[rA].text, void 0, R[rA].align);
      }), this.setTableHeaderRow(W), this.printHeaderRow(1, !1);
    }
    var AA = g.reduce(function(rA, QA) {
      return rA[QA.name] = QA.align, rA;
    }, {});
    for (p = 0; p < h.length; p += 1) {
      "rowStart" in w && w.rowStart instanceof Function && w.rowStart({ row: p, data: h[p] }, this);
      var z = o.call(this, h[p], J);
      for (F = 0; F < v.length; F += 1) {
        var aA = h[p][v[F]];
        "cellStart" in w && w.cellStart instanceof Function && w.cellStart({ row: p, col: F, data: aA }, this), a.call(this, new s(c, d, J[v[F]], z, aA, p + 2, AA[v[F]]));
      }
    }
    return this.internal.__cell__.table_x = c, this.internal.__cell__.table_y = d, this;
  };
  var o = function(c, d) {
    var h = this.internal.__cell__.padding, g = this.internal.__cell__.table_font_size, w = this.internal.scaleFactor;
    return Object.keys(c).map(function(p) {
      var m = c[p];
      return this.splitTextToSize(m.hasOwnProperty("text") ? m.text : m, d[p] - h - h);
    }, this).map(function(p) {
      return this.getLineHeightFactor() * p.length * g / w + h + h;
    }, this).reduce(function(p, m) {
      return Math.max(p, m);
    }, 0);
  };
  t.setTableHeaderRow = function(c) {
    r.call(this), this.internal.__cell__.tableHeaderRow = c;
  }, t.printHeaderRow = function(c, d) {
    if (r.call(this), !this.internal.__cell__.tableHeaderRow) throw new Error("Property tableHeaderRow does not exist.");
    var h;
    if (A = !0, typeof this.internal.__cell__.headerFunction == "function") {
      var g = this.internal.__cell__.headerFunction(this, this.internal.__cell__.pages);
      this.internal.__cell__.lastCell = new s(g[0], g[1], g[2], g[3], void 0, -1);
    }
    this.setFont(void 0, "bold");
    for (var w = [], p = 0; p < this.internal.__cell__.tableHeaderRow.length; p += 1) {
      h = this.internal.__cell__.tableHeaderRow[p].clone(), d && (h.y = this.internal.__cell__.margins.top || 0, w.push(h)), h.lineNumber = c;
      var m = this.getTextColor();
      this.setTextColor(this.internal.__cell__.headerTextColor), this.setFillColor(this.internal.__cell__.headerBackgroundColor), a.call(this, h), this.setTextColor(m);
    }
    w.length > 0 && this.setTableHeaderRow(w), this.setFont(void 0, "normal"), A = !1;
  };
}(Fe.API);
var Xd = { italic: ["italic", "oblique", "normal"], oblique: ["oblique", "italic", "normal"], normal: ["normal", "oblique", "italic"] }, zd = ["ultra-condensed", "extra-condensed", "condensed", "semi-condensed", "normal", "semi-expanded", "expanded", "extra-expanded", "ultra-expanded"], Xc = Wd(zd), Yd = [100, 200, 300, 400, 500, 600, 700, 800, 900], ew = Wd(Yd);
function zc(t) {
  var e = t.family.replace(/"|'/g, "").toLowerCase(), A = function(s) {
    return Xd[s = s || "normal"] ? s : "normal";
  }(t.style), r = function(s) {
    if (!s) return 400;
    if (typeof s == "number") return s >= 100 && s <= 900 && s % 100 == 0 ? s : 400;
    if (/^\d00$/.test(s)) return parseInt(s);
    switch (s) {
      case "bold":
        return 700;
      case "normal":
      default:
        return 400;
    }
  }(t.weight), n = function(s) {
    return typeof Xc[s = s || "normal"] == "number" ? s : "normal";
  }(t.stretch);
  return { family: e, style: A, weight: r, stretch: n, src: t.src || [], ref: t.ref || { name: e, style: [n, A, r].join(" ") } };
}
function Bf(t, e, A, r) {
  var n;
  for (n = A; n >= 0 && n < e.length; n += r) if (t[e[n]]) return t[e[n]];
  for (n = A; n >= 0 && n < e.length; n -= r) if (t[e[n]]) return t[e[n]];
}
var tw = { "sans-serif": "helvetica", fixed: "courier", monospace: "courier", terminal: "courier", cursive: "times", fantasy: "times", serif: "times" }, wf = { caption: "times", icon: "times", menu: "times", "message-box": "times", "small-caption": "times", "status-bar": "times" };
function vf(t) {
  return [t.stretch, t.style, t.weight, t.family].join(" ");
}
function rw(t, e, A) {
  for (var r = (A = A || {}).defaultFontFamily || "times", n = Object.assign({}, tw, A.genericFontFamilies || {}), s = null, a = null, o = 0; o < e.length; ++o) if (n[(s = zc(e[o])).family] && (s.family = n[s.family]), t.hasOwnProperty(s.family)) {
    a = t[s.family];
    break;
  }
  if (!(a = a || t[r])) throw new Error("Could not find a font-family for the rule '" + vf(s) + "' and default family '" + r + "'.");
  if (a = function(c, d) {
    if (d[c]) return d[c];
    var h = Xc[c], g = h <= Xc.normal ? -1 : 1, w = Bf(d, zd, h, g);
    if (!w) throw new Error("Could not find a matching font-stretch value for " + c);
    return w;
  }(s.stretch, a), a = function(c, d) {
    if (d[c]) return d[c];
    for (var h = Xd[c], g = 0; g < h.length; ++g) if (d[h[g]]) return d[h[g]];
    throw new Error("Could not find a matching font-style for " + c);
  }(s.style, a), !(a = function(c, d) {
    if (d[c]) return d[c];
    if (c === 400 && d[500]) return d[500];
    if (c === 500 && d[400]) return d[400];
    var h = ew[c], g = Bf(d, Yd, h, c < 400 ? -1 : 1);
    if (!g) throw new Error("Could not find a matching font-weight for value " + c);
    return g;
  }(s.weight, a))) throw new Error("Failed to resolve a font for the rule '" + vf(s) + "'.");
  return a;
}
function mf(t) {
  return t.trimLeft();
}
function nw(t, e) {
  for (var A = 0; A < t.length; ) {
    if (t.charAt(A) === e) return [t.substring(0, A), t.substring(A + 1)];
    A += 1;
  }
  return null;
}
function sw(t) {
  var e = t.match(/^(-[a-z_]|[a-z_])[a-z0-9_-]*/i);
  return e === null ? null : [e[0], t.substring(e[0].length)];
}
var uo, yf, Cf, dc = ["times"];
(function(t) {
  var e, A, r, n, s, a, o, c, d, h = function(b) {
    return b = b || {}, this.isStrokeTransparent = b.isStrokeTransparent || !1, this.strokeOpacity = b.strokeOpacity || 1, this.strokeStyle = b.strokeStyle || "#000000", this.fillStyle = b.fillStyle || "#000000", this.isFillTransparent = b.isFillTransparent || !1, this.fillOpacity = b.fillOpacity || 1, this.font = b.font || "10px sans-serif", this.textBaseline = b.textBaseline || "alphabetic", this.textAlign = b.textAlign || "left", this.lineWidth = b.lineWidth || 1, this.lineJoin = b.lineJoin || "miter", this.lineCap = b.lineCap || "butt", this.path = b.path || [], this.transform = b.transform !== void 0 ? b.transform.clone() : new c(), this.globalCompositeOperation = b.globalCompositeOperation || "normal", this.globalAlpha = b.globalAlpha || 1, this.clip_path = b.clip_path || [], this.currentPoint = b.currentPoint || new a(), this.miterLimit = b.miterLimit || 10, this.lastPoint = b.lastPoint || new a(), this.lineDashOffset = b.lineDashOffset || 0, this.lineDash = b.lineDash || [], this.margin = b.margin || [0, 0, 0, 0], this.prevPageLastElemOffset = b.prevPageLastElemOffset || 0, this.ignoreClearRect = typeof b.ignoreClearRect != "boolean" || b.ignoreClearRect, this;
  };
  t.events.push(["initialized", function() {
    this.context2d = new g(this), e = this.internal.f2, A = this.internal.getCoordinateString, r = this.internal.getVerticalCoordinateString, n = this.internal.getHorizontalCoordinate, s = this.internal.getVerticalCoordinate, a = this.internal.Point, o = this.internal.Rectangle, c = this.internal.Matrix, d = new h();
  }]);
  var g = function(b) {
    Object.defineProperty(this, "canvas", { get: function() {
      return { parentNode: !1, style: !1 };
    } });
    var T = b;
    Object.defineProperty(this, "pdf", { get: function() {
      return T;
    } });
    var _ = !1;
    Object.defineProperty(this, "pageWrapXEnabled", { get: function() {
      return _;
    }, set: function(yA) {
      _ = !!yA;
    } });
    var j = !1;
    Object.defineProperty(this, "pageWrapYEnabled", { get: function() {
      return j;
    }, set: function(yA) {
      j = !!yA;
    } });
    var $ = 0;
    Object.defineProperty(this, "posX", { get: function() {
      return $;
    }, set: function(yA) {
      isNaN(yA) || ($ = yA);
    } });
    var uA = 0;
    Object.defineProperty(this, "posY", { get: function() {
      return uA;
    }, set: function(yA) {
      isNaN(yA) || (uA = yA);
    } }), Object.defineProperty(this, "margin", { get: function() {
      return d.margin;
    }, set: function(yA) {
      var G;
      typeof yA == "number" ? G = [yA, yA, yA, yA] : ((G = new Array(4))[0] = yA[0], G[1] = yA.length >= 2 ? yA[1] : G[0], G[2] = yA.length >= 3 ? yA[2] : G[0], G[3] = yA.length >= 4 ? yA[3] : G[1]), d.margin = G;
    } });
    var hA = !1;
    Object.defineProperty(this, "autoPaging", { get: function() {
      return hA;
    }, set: function(yA) {
      hA = yA;
    } });
    var mA = 0;
    Object.defineProperty(this, "lastBreak", { get: function() {
      return mA;
    }, set: function(yA) {
      mA = yA;
    } });
    var jA = [];
    Object.defineProperty(this, "pageBreaks", { get: function() {
      return jA;
    }, set: function(yA) {
      jA = yA;
    } }), Object.defineProperty(this, "ctx", { get: function() {
      return d;
    }, set: function(yA) {
      yA instanceof h && (d = yA);
    } }), Object.defineProperty(this, "path", { get: function() {
      return d.path;
    }, set: function(yA) {
      d.path = yA;
    } });
    var VA = [];
    Object.defineProperty(this, "ctxStack", { get: function() {
      return VA;
    }, set: function(yA) {
      VA = yA;
    } }), Object.defineProperty(this, "fillStyle", { get: function() {
      return this.ctx.fillStyle;
    }, set: function(yA) {
      var G;
      G = w(yA), this.ctx.fillStyle = G.style, this.ctx.isFillTransparent = G.a === 0, this.ctx.fillOpacity = G.a, this.pdf.setFillColor(G.r, G.g, G.b, { a: G.a }), this.pdf.setTextColor(G.r, G.g, G.b, { a: G.a });
    } }), Object.defineProperty(this, "strokeStyle", { get: function() {
      return this.ctx.strokeStyle;
    }, set: function(yA) {
      var G = w(yA);
      this.ctx.strokeStyle = G.style, this.ctx.isStrokeTransparent = G.a === 0, this.ctx.strokeOpacity = G.a, G.a === 0 ? this.pdf.setDrawColor(255, 255, 255) : (G.a, this.pdf.setDrawColor(G.r, G.g, G.b));
    } }), Object.defineProperty(this, "lineCap", { get: function() {
      return this.ctx.lineCap;
    }, set: function(yA) {
      ["butt", "round", "square"].indexOf(yA) !== -1 && (this.ctx.lineCap = yA, this.pdf.setLineCap(yA));
    } }), Object.defineProperty(this, "lineWidth", { get: function() {
      return this.ctx.lineWidth;
    }, set: function(yA) {
      isNaN(yA) || (this.ctx.lineWidth = yA, this.pdf.setLineWidth(yA));
    } }), Object.defineProperty(this, "lineJoin", { get: function() {
      return this.ctx.lineJoin;
    }, set: function(yA) {
      ["bevel", "round", "miter"].indexOf(yA) !== -1 && (this.ctx.lineJoin = yA, this.pdf.setLineJoin(yA));
    } }), Object.defineProperty(this, "miterLimit", { get: function() {
      return this.ctx.miterLimit;
    }, set: function(yA) {
      isNaN(yA) || (this.ctx.miterLimit = yA, this.pdf.setMiterLimit(yA));
    } }), Object.defineProperty(this, "textBaseline", { get: function() {
      return this.ctx.textBaseline;
    }, set: function(yA) {
      this.ctx.textBaseline = yA;
    } }), Object.defineProperty(this, "textAlign", { get: function() {
      return this.ctx.textAlign;
    }, set: function(yA) {
      ["right", "end", "center", "left", "start"].indexOf(yA) !== -1 && (this.ctx.textAlign = yA);
    } });
    var YA = null;
    function nA(yA, G) {
      if (YA === null) {
        var CA = function(DA) {
          var cA = [];
          return Object.keys(DA).forEach(function(HA) {
            DA[HA].forEach(function(XA) {
              var OA = null;
              switch (XA) {
                case "bold":
                  OA = { family: HA, weight: "bold" };
                  break;
                case "italic":
                  OA = { family: HA, style: "italic" };
                  break;
                case "bolditalic":
                  OA = { family: HA, weight: "bold", style: "italic" };
                  break;
                case "":
                case "normal":
                  OA = { family: HA };
              }
              OA !== null && (OA.ref = { name: HA, style: XA }, cA.push(OA));
            });
          }), cA;
        }(yA.getFontList());
        YA = function(DA) {
          for (var cA = {}, HA = 0; HA < DA.length; ++HA) {
            var XA = zc(DA[HA]), OA = XA.family, ZA = XA.stretch, sA = XA.style, bA = XA.weight;
            cA[OA] = cA[OA] || {}, cA[OA][ZA] = cA[OA][ZA] || {}, cA[OA][ZA][sA] = cA[OA][ZA][sA] || {}, cA[OA][ZA][sA][bA] = XA;
          }
          return cA;
        }(CA.concat(G));
      }
      return YA;
    }
    var UA = null;
    Object.defineProperty(this, "fontFaces", { get: function() {
      return UA;
    }, set: function(yA) {
      YA = null, UA = yA;
    } }), Object.defineProperty(this, "font", { get: function() {
      return this.ctx.font;
    }, set: function(yA) {
      var G;
      if (this.ctx.font = yA, (G = /^\s*(?=(?:(?:[-a-z]+\s*){0,2}(italic|oblique))?)(?=(?:(?:[-a-z]+\s*){0,2}(small-caps))?)(?=(?:(?:[-a-z]+\s*){0,2}(bold(?:er)?|lighter|[1-9]00))?)(?:(?:normal|\1|\2|\3)\s*){0,3}((?:xx?-)?(?:small|large)|medium|smaller|larger|[.\d]+(?:\%|in|[cem]m|ex|p[ctx]))(?:\s*\/\s*(normal|[.\d]+(?:\%|in|[cem]m|ex|p[ctx])))?\s*([-_,\"\'\sa-z]+?)\s*$/i.exec(yA)) !== null) {
        var CA = G[1];
        G[2];
        var DA = G[3], cA = G[4];
        G[5];
        var HA = G[6], XA = /^([.\d]+)((?:%|in|[cem]m|ex|p[ctx]))$/i.exec(cA)[2];
        cA = Math.floor(XA === "px" ? parseFloat(cA) * this.pdf.internal.scaleFactor : XA === "em" ? parseFloat(cA) * this.pdf.getFontSize() : parseFloat(cA) * this.pdf.internal.scaleFactor), this.pdf.setFontSize(cA);
        var OA = function(re) {
          var ce, RA, Pe = [], Ce = re.trim();
          if (Ce === "") return dc;
          if (Ce in wf) return [wf[Ce]];
          for (; Ce !== ""; ) {
            switch (RA = null, ce = (Ce = mf(Ce)).charAt(0)) {
              case '"':
              case "'":
                RA = nw(Ce.substring(1), ce);
                break;
              default:
                RA = sw(Ce);
            }
            if (RA === null || (Pe.push(RA[0]), (Ce = mf(RA[1])) !== "" && Ce.charAt(0) !== ",")) return dc;
            Ce = Ce.replace(/^,/, "");
          }
          return Pe;
        }(HA);
        if (this.fontFaces) {
          var ZA = rw(nA(this.pdf, this.fontFaces), OA.map(function(re) {
            return { family: re, stretch: "normal", weight: DA, style: CA };
          }));
          this.pdf.setFont(ZA.ref.name, ZA.ref.style);
        } else {
          var sA = "";
          (DA === "bold" || parseInt(DA, 10) >= 700 || CA === "bold") && (sA = "bold"), CA === "italic" && (sA += "italic"), sA.length === 0 && (sA = "normal");
          for (var bA = "", PA = { arial: "Helvetica", Arial: "Helvetica", verdana: "Helvetica", Verdana: "Helvetica", helvetica: "Helvetica", Helvetica: "Helvetica", "sans-serif": "Helvetica", fixed: "Courier", monospace: "Courier", terminal: "Courier", cursive: "Times", fantasy: "Times", serif: "Times" }, te = 0; te < OA.length; te++) {
            if (this.pdf.internal.getFont(OA[te], sA, { noFallback: !0, disableWarning: !0 }) !== void 0) {
              bA = OA[te];
              break;
            }
            if (sA === "bolditalic" && this.pdf.internal.getFont(OA[te], "bold", { noFallback: !0, disableWarning: !0 }) !== void 0) bA = OA[te], sA = "bold";
            else if (this.pdf.internal.getFont(OA[te], "normal", { noFallback: !0, disableWarning: !0 }) !== void 0) {
              bA = OA[te], sA = "normal";
              break;
            }
          }
          if (bA === "") {
            for (var he = 0; he < OA.length; he++) if (PA[OA[he]]) {
              bA = PA[OA[he]];
              break;
            }
          }
          bA = bA === "" ? "Times" : bA, this.pdf.setFont(bA, sA);
        }
      }
    } }), Object.defineProperty(this, "globalCompositeOperation", { get: function() {
      return this.ctx.globalCompositeOperation;
    }, set: function(yA) {
      this.ctx.globalCompositeOperation = yA;
    } }), Object.defineProperty(this, "globalAlpha", { get: function() {
      return this.ctx.globalAlpha;
    }, set: function(yA) {
      this.ctx.globalAlpha = yA;
    } }), Object.defineProperty(this, "lineDashOffset", { get: function() {
      return this.ctx.lineDashOffset;
    }, set: function(yA) {
      this.ctx.lineDashOffset = yA, QA.call(this);
    } }), Object.defineProperty(this, "lineDash", { get: function() {
      return this.ctx.lineDash;
    }, set: function(yA) {
      this.ctx.lineDash = yA, QA.call(this);
    } }), Object.defineProperty(this, "ignoreClearRect", { get: function() {
      return this.ctx.ignoreClearRect;
    }, set: function(yA) {
      this.ctx.ignoreClearRect = !!yA;
    } });
  };
  g.prototype.setLineDash = function(b) {
    this.lineDash = b;
  }, g.prototype.getLineDash = function() {
    return this.lineDash.length % 2 ? this.lineDash.concat(this.lineDash) : this.lineDash.slice();
  }, g.prototype.fill = function() {
    V.call(this, "fill", !1);
  }, g.prototype.stroke = function() {
    V.call(this, "stroke", !1);
  }, g.prototype.beginPath = function() {
    this.path = [{ type: "begin" }];
  }, g.prototype.moveTo = function(b, T) {
    if (isNaN(b) || isNaN(T)) throw ot.error("jsPDF.context2d.moveTo: Invalid arguments", arguments), new Error("Invalid arguments passed to jsPDF.context2d.moveTo");
    var _ = this.ctx.transform.applyToPoint(new a(b, T));
    this.path.push({ type: "mt", x: _.x, y: _.y }), this.ctx.lastPoint = new a(b, T);
  }, g.prototype.closePath = function() {
    var b = new a(0, 0), T = 0;
    for (T = this.path.length - 1; T !== -1; T--) if (this.path[T].type === "begin" && et(this.path[T + 1]) === "object" && typeof this.path[T + 1].x == "number") {
      b = new a(this.path[T + 1].x, this.path[T + 1].y);
      break;
    }
    this.path.push({ type: "close" }), this.ctx.lastPoint = new a(b.x, b.y);
  }, g.prototype.lineTo = function(b, T) {
    if (isNaN(b) || isNaN(T)) throw ot.error("jsPDF.context2d.lineTo: Invalid arguments", arguments), new Error("Invalid arguments passed to jsPDF.context2d.lineTo");
    var _ = this.ctx.transform.applyToPoint(new a(b, T));
    this.path.push({ type: "lt", x: _.x, y: _.y }), this.ctx.lastPoint = new a(_.x, _.y);
  }, g.prototype.clip = function() {
    this.ctx.clip_path = JSON.parse(JSON.stringify(this.path)), V.call(this, null, !0);
  }, g.prototype.quadraticCurveTo = function(b, T, _, j) {
    if (isNaN(_) || isNaN(j) || isNaN(b) || isNaN(T)) throw ot.error("jsPDF.context2d.quadraticCurveTo: Invalid arguments", arguments), new Error("Invalid arguments passed to jsPDF.context2d.quadraticCurveTo");
    var $ = this.ctx.transform.applyToPoint(new a(_, j)), uA = this.ctx.transform.applyToPoint(new a(b, T));
    this.path.push({ type: "qct", x1: uA.x, y1: uA.y, x: $.x, y: $.y }), this.ctx.lastPoint = new a($.x, $.y);
  }, g.prototype.bezierCurveTo = function(b, T, _, j, $, uA) {
    if (isNaN($) || isNaN(uA) || isNaN(b) || isNaN(T) || isNaN(_) || isNaN(j)) throw ot.error("jsPDF.context2d.bezierCurveTo: Invalid arguments", arguments), new Error("Invalid arguments passed to jsPDF.context2d.bezierCurveTo");
    var hA = this.ctx.transform.applyToPoint(new a($, uA)), mA = this.ctx.transform.applyToPoint(new a(b, T)), jA = this.ctx.transform.applyToPoint(new a(_, j));
    this.path.push({ type: "bct", x1: mA.x, y1: mA.y, x2: jA.x, y2: jA.y, x: hA.x, y: hA.y }), this.ctx.lastPoint = new a(hA.x, hA.y);
  }, g.prototype.arc = function(b, T, _, j, $, uA) {
    if (isNaN(b) || isNaN(T) || isNaN(_) || isNaN(j) || isNaN($)) throw ot.error("jsPDF.context2d.arc: Invalid arguments", arguments), new Error("Invalid arguments passed to jsPDF.context2d.arc");
    if (uA = !!uA, !this.ctx.transform.isIdentity) {
      var hA = this.ctx.transform.applyToPoint(new a(b, T));
      b = hA.x, T = hA.y;
      var mA = this.ctx.transform.applyToPoint(new a(0, _)), jA = this.ctx.transform.applyToPoint(new a(0, 0));
      _ = Math.sqrt(Math.pow(mA.x - jA.x, 2) + Math.pow(mA.y - jA.y, 2));
    }
    Math.abs($ - j) >= 2 * Math.PI && (j = 0, $ = 2 * Math.PI), this.path.push({ type: "arc", x: b, y: T, radius: _, startAngle: j, endAngle: $, counterclockwise: uA });
  }, g.prototype.arcTo = function(b, T, _, j, $) {
    throw new Error("arcTo not implemented.");
  }, g.prototype.rect = function(b, T, _, j) {
    if (isNaN(b) || isNaN(T) || isNaN(_) || isNaN(j)) throw ot.error("jsPDF.context2d.rect: Invalid arguments", arguments), new Error("Invalid arguments passed to jsPDF.context2d.rect");
    this.moveTo(b, T), this.lineTo(b + _, T), this.lineTo(b + _, T + j), this.lineTo(b, T + j), this.lineTo(b, T), this.lineTo(b + _, T), this.lineTo(b, T);
  }, g.prototype.fillRect = function(b, T, _, j) {
    if (isNaN(b) || isNaN(T) || isNaN(_) || isNaN(j)) throw ot.error("jsPDF.context2d.fillRect: Invalid arguments", arguments), new Error("Invalid arguments passed to jsPDF.context2d.fillRect");
    if (!p.call(this)) {
      var $ = {};
      this.lineCap !== "butt" && ($.lineCap = this.lineCap, this.lineCap = "butt"), this.lineJoin !== "miter" && ($.lineJoin = this.lineJoin, this.lineJoin = "miter"), this.beginPath(), this.rect(b, T, _, j), this.fill(), $.hasOwnProperty("lineCap") && (this.lineCap = $.lineCap), $.hasOwnProperty("lineJoin") && (this.lineJoin = $.lineJoin);
    }
  }, g.prototype.strokeRect = function(b, T, _, j) {
    if (isNaN(b) || isNaN(T) || isNaN(_) || isNaN(j)) throw ot.error("jsPDF.context2d.strokeRect: Invalid arguments", arguments), new Error("Invalid arguments passed to jsPDF.context2d.strokeRect");
    m.call(this) || (this.beginPath(), this.rect(b, T, _, j), this.stroke());
  }, g.prototype.clearRect = function(b, T, _, j) {
    if (isNaN(b) || isNaN(T) || isNaN(_) || isNaN(j)) throw ot.error("jsPDF.context2d.clearRect: Invalid arguments", arguments), new Error("Invalid arguments passed to jsPDF.context2d.clearRect");
    this.ignoreClearRect || (this.fillStyle = "#ffffff", this.fillRect(b, T, _, j));
  }, g.prototype.save = function(b) {
    b = typeof b != "boolean" || b;
    for (var T = this.pdf.internal.getCurrentPageInfo().pageNumber, _ = 0; _ < this.pdf.internal.getNumberOfPages(); _++) this.pdf.setPage(_ + 1), this.pdf.internal.out("q");
    if (this.pdf.setPage(T), b) {
      this.ctx.fontSize = this.pdf.internal.getFontSize();
      var j = new h(this.ctx);
      this.ctxStack.push(this.ctx), this.ctx = j;
    }
  }, g.prototype.restore = function(b) {
    b = typeof b != "boolean" || b;
    for (var T = this.pdf.internal.getCurrentPageInfo().pageNumber, _ = 0; _ < this.pdf.internal.getNumberOfPages(); _++) this.pdf.setPage(_ + 1), this.pdf.internal.out("Q");
    this.pdf.setPage(T), b && this.ctxStack.length !== 0 && (this.ctx = this.ctxStack.pop(), this.fillStyle = this.ctx.fillStyle, this.strokeStyle = this.ctx.strokeStyle, this.font = this.ctx.font, this.lineCap = this.ctx.lineCap, this.lineWidth = this.ctx.lineWidth, this.lineJoin = this.ctx.lineJoin, this.lineDash = this.ctx.lineDash, this.lineDashOffset = this.ctx.lineDashOffset);
  }, g.prototype.toDataURL = function() {
    throw new Error("toDataUrl not implemented.");
  };
  var w = function(b) {
    var T, _, j, $;
    if (b.isCanvasGradient === !0 && (b = b.getColor()), !b) return { r: 0, g: 0, b: 0, a: 0, style: b };
    if (/transparent|rgba\s*\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*,\s*0+\s*\)/.test(b)) T = 0, _ = 0, j = 0, $ = 0;
    else {
      var uA = /rgb\s*\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*\)/.exec(b);
      if (uA !== null) T = parseInt(uA[1]), _ = parseInt(uA[2]), j = parseInt(uA[3]), $ = 1;
      else if ((uA = /rgba\s*\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*,\s*([\d.]+)\s*\)/.exec(b)) !== null) T = parseInt(uA[1]), _ = parseInt(uA[2]), j = parseInt(uA[3]), $ = parseFloat(uA[4]);
      else {
        if ($ = 1, typeof b == "string" && b.charAt(0) !== "#") {
          var hA = new Rd(b);
          b = hA.ok ? hA.toHex() : "#000000";
        }
        b.length === 4 ? (T = b.substring(1, 2), T += T, _ = b.substring(2, 3), _ += _, j = b.substring(3, 4), j += j) : (T = b.substring(1, 3), _ = b.substring(3, 5), j = b.substring(5, 7)), T = parseInt(T, 16), _ = parseInt(_, 16), j = parseInt(j, 16);
      }
    }
    return { r: T, g: _, b: j, a: $, style: b };
  }, p = function() {
    return this.ctx.isFillTransparent || this.globalAlpha == 0;
  }, m = function() {
    return !!(this.ctx.isStrokeTransparent || this.globalAlpha == 0);
  };
  g.prototype.fillText = function(b, T, _, j) {
    if (isNaN(T) || isNaN(_) || typeof b != "string") throw ot.error("jsPDF.context2d.fillText: Invalid arguments", arguments), new Error("Invalid arguments passed to jsPDF.context2d.fillText");
    if (j = isNaN(j) ? void 0 : j, !p.call(this)) {
      var $ = z(this.ctx.transform.rotation), uA = this.ctx.transform.scaleX;
      Q.call(this, { text: b, x: T, y: _, scale: uA, angle: $, align: this.textAlign, maxWidth: j });
    }
  }, g.prototype.strokeText = function(b, T, _, j) {
    if (isNaN(T) || isNaN(_) || typeof b != "string") throw ot.error("jsPDF.context2d.strokeText: Invalid arguments", arguments), new Error("Invalid arguments passed to jsPDF.context2d.strokeText");
    if (!m.call(this)) {
      j = isNaN(j) ? void 0 : j;
      var $ = z(this.ctx.transform.rotation), uA = this.ctx.transform.scaleX;
      Q.call(this, { text: b, x: T, y: _, scale: uA, renderingMode: "stroke", angle: $, align: this.textAlign, maxWidth: j });
    }
  }, g.prototype.measureText = function(b) {
    if (typeof b != "string") throw ot.error("jsPDF.context2d.measureText: Invalid arguments", arguments), new Error("Invalid arguments passed to jsPDF.context2d.measureText");
    var T = this.pdf, _ = this.pdf.internal.scaleFactor, j = T.internal.getFontSize(), $ = T.getStringUnitWidth(b) * j / T.internal.scaleFactor, uA = function(hA) {
      var mA = (hA = hA || {}).width || 0;
      return Object.defineProperty(this, "width", { get: function() {
        return mA;
      } }), this;
    };
    return new uA({ width: $ *= Math.round(96 * _ / 72 * 1e4) / 1e4 });
  }, g.prototype.scale = function(b, T) {
    if (isNaN(b) || isNaN(T)) throw ot.error("jsPDF.context2d.scale: Invalid arguments", arguments), new Error("Invalid arguments passed to jsPDF.context2d.scale");
    var _ = new c(b, 0, 0, T, 0, 0);
    this.ctx.transform = this.ctx.transform.multiply(_);
  }, g.prototype.rotate = function(b) {
    if (isNaN(b)) throw ot.error("jsPDF.context2d.rotate: Invalid arguments", arguments), new Error("Invalid arguments passed to jsPDF.context2d.rotate");
    var T = new c(Math.cos(b), Math.sin(b), -Math.sin(b), Math.cos(b), 0, 0);
    this.ctx.transform = this.ctx.transform.multiply(T);
  }, g.prototype.translate = function(b, T) {
    if (isNaN(b) || isNaN(T)) throw ot.error("jsPDF.context2d.translate: Invalid arguments", arguments), new Error("Invalid arguments passed to jsPDF.context2d.translate");
    var _ = new c(1, 0, 0, 1, b, T);
    this.ctx.transform = this.ctx.transform.multiply(_);
  }, g.prototype.transform = function(b, T, _, j, $, uA) {
    if (isNaN(b) || isNaN(T) || isNaN(_) || isNaN(j) || isNaN($) || isNaN(uA)) throw ot.error("jsPDF.context2d.transform: Invalid arguments", arguments), new Error("Invalid arguments passed to jsPDF.context2d.transform");
    var hA = new c(b, T, _, j, $, uA);
    this.ctx.transform = this.ctx.transform.multiply(hA);
  }, g.prototype.setTransform = function(b, T, _, j, $, uA) {
    b = isNaN(b) ? 1 : b, T = isNaN(T) ? 0 : T, _ = isNaN(_) ? 0 : _, j = isNaN(j) ? 1 : j, $ = isNaN($) ? 0 : $, uA = isNaN(uA) ? 0 : uA, this.ctx.transform = new c(b, T, _, j, $, uA);
  };
  var F = function() {
    return this.margin[0] > 0 || this.margin[1] > 0 || this.margin[2] > 0 || this.margin[3] > 0;
  };
  g.prototype.drawImage = function(b, T, _, j, $, uA, hA, mA, jA) {
    var VA = this.pdf.getImageProperties(b), YA = 1, nA = 1, UA = 1, yA = 1;
    j !== void 0 && mA !== void 0 && (UA = mA / j, yA = jA / $, YA = VA.width / j * mA / j, nA = VA.height / $ * jA / $), uA === void 0 && (uA = T, hA = _, T = 0, _ = 0), j !== void 0 && mA === void 0 && (mA = j, jA = $), j === void 0 && mA === void 0 && (mA = VA.width, jA = VA.height);
    for (var G, CA = this.ctx.transform.decompose(), DA = z(CA.rotate.shx), cA = new c(), HA = (cA = (cA = (cA = cA.multiply(CA.translate)).multiply(CA.skew)).multiply(CA.scale)).applyToRectangle(new o(uA - T * UA, hA - _ * yA, j * YA, $ * nA)), XA = D.call(this, HA), OA = [], ZA = 0; ZA < XA.length; ZA += 1) OA.indexOf(XA[ZA]) === -1 && OA.push(XA[ZA]);
    if (P(OA), this.autoPaging) for (var sA = OA[0], bA = OA[OA.length - 1], PA = sA; PA < bA + 1; PA++) {
      this.pdf.setPage(PA);
      var te = this.pdf.internal.pageSize.width - this.margin[3] - this.margin[1], he = PA === 1 ? this.posY + this.margin[0] : this.margin[0], re = this.pdf.internal.pageSize.height - this.posY - this.margin[0] - this.margin[2], ce = this.pdf.internal.pageSize.height - this.margin[0] - this.margin[2], RA = PA === 1 ? 0 : re + (PA - 2) * ce;
      if (this.ctx.clip_path.length !== 0) {
        var Pe = this.path;
        G = JSON.parse(JSON.stringify(this.ctx.clip_path)), this.path = E(G, this.posX + this.margin[3], -RA + he + this.ctx.prevPageLastElemOffset), J.call(this, "fill", !0), this.path = Pe;
      }
      var Ce = JSON.parse(JSON.stringify(HA));
      Ce = E([Ce], this.posX + this.margin[3], -RA + he + this.ctx.prevPageLastElemOffset)[0];
      var tt = (PA > sA || PA < bA) && F.call(this);
      tt && (this.pdf.saveGraphicsState(), this.pdf.rect(this.margin[3], this.margin[0], te, ce, null).clip().discardPath()), this.pdf.addImage(b, "JPEG", Ce.x, Ce.y, Ce.w, Ce.h, null, null, DA), tt && this.pdf.restoreGraphicsState();
    }
    else this.pdf.addImage(b, "JPEG", HA.x, HA.y, HA.w, HA.h, null, null, DA);
  };
  var D = function(b, T, _) {
    var j = [];
    T = T || this.pdf.internal.pageSize.width, _ = _ || this.pdf.internal.pageSize.height - this.margin[0] - this.margin[2];
    var $ = this.posY + this.ctx.prevPageLastElemOffset;
    switch (b.type) {
      default:
      case "mt":
      case "lt":
        j.push(Math.floor((b.y + $) / _) + 1);
        break;
      case "arc":
        j.push(Math.floor((b.y + $ - b.radius) / _) + 1), j.push(Math.floor((b.y + $ + b.radius) / _) + 1);
        break;
      case "qct":
        var uA = aA(this.ctx.lastPoint.x, this.ctx.lastPoint.y, b.x1, b.y1, b.x, b.y);
        j.push(Math.floor((uA.y + $) / _) + 1), j.push(Math.floor((uA.y + uA.h + $) / _) + 1);
        break;
      case "bct":
        var hA = rA(this.ctx.lastPoint.x, this.ctx.lastPoint.y, b.x1, b.y1, b.x2, b.y2, b.x, b.y);
        j.push(Math.floor((hA.y + $) / _) + 1), j.push(Math.floor((hA.y + hA.h + $) / _) + 1);
        break;
      case "rect":
        j.push(Math.floor((b.y + $) / _) + 1), j.push(Math.floor((b.y + b.h + $) / _) + 1);
    }
    for (var mA = 0; mA < j.length; mA += 1) for (; this.pdf.internal.getNumberOfPages() < j[mA]; ) v.call(this);
    return j;
  }, v = function() {
    var b = this.fillStyle, T = this.strokeStyle, _ = this.font, j = this.lineCap, $ = this.lineWidth, uA = this.lineJoin;
    this.pdf.addPage(), this.fillStyle = b, this.strokeStyle = T, this.font = _, this.lineCap = j, this.lineWidth = $, this.lineJoin = uA;
  }, E = function(b, T, _) {
    for (var j = 0; j < b.length; j++) switch (b[j].type) {
      case "bct":
        b[j].x2 += T, b[j].y2 += _;
      case "qct":
        b[j].x1 += T, b[j].y1 += _;
      case "mt":
      case "lt":
      case "arc":
      default:
        b[j].x += T, b[j].y += _;
    }
    return b;
  }, P = function(b) {
    return b.sort(function(T, _) {
      return T - _;
    });
  }, V = function(b, T) {
    for (var _, j, $ = this.fillStyle, uA = this.strokeStyle, hA = this.lineCap, mA = this.lineWidth, jA = Math.abs(mA * this.ctx.transform.scaleX), VA = this.lineJoin, YA = JSON.parse(JSON.stringify(this.path)), nA = JSON.parse(JSON.stringify(this.path)), UA = [], yA = 0; yA < nA.length; yA++) if (nA[yA].x !== void 0) for (var G = D.call(this, nA[yA]), CA = 0; CA < G.length; CA += 1) UA.indexOf(G[CA]) === -1 && UA.push(G[CA]);
    for (var DA = 0; DA < UA.length; DA++) for (; this.pdf.internal.getNumberOfPages() < UA[DA]; ) v.call(this);
    if (P(UA), this.autoPaging) for (var cA = UA[0], HA = UA[UA.length - 1], XA = cA; XA < HA + 1; XA++) {
      this.pdf.setPage(XA), this.fillStyle = $, this.strokeStyle = uA, this.lineCap = hA, this.lineWidth = jA, this.lineJoin = VA;
      var OA = this.pdf.internal.pageSize.width - this.margin[3] - this.margin[1], ZA = XA === 1 ? this.posY + this.margin[0] : this.margin[0], sA = this.pdf.internal.pageSize.height - this.posY - this.margin[0] - this.margin[2], bA = this.pdf.internal.pageSize.height - this.margin[0] - this.margin[2], PA = XA === 1 ? 0 : sA + (XA - 2) * bA;
      if (this.ctx.clip_path.length !== 0) {
        var te = this.path;
        _ = JSON.parse(JSON.stringify(this.ctx.clip_path)), this.path = E(_, this.posX + this.margin[3], -PA + ZA + this.ctx.prevPageLastElemOffset), J.call(this, b, !0), this.path = te;
      }
      if (j = JSON.parse(JSON.stringify(YA)), this.path = E(j, this.posX + this.margin[3], -PA + ZA + this.ctx.prevPageLastElemOffset), T === !1 || XA === 0) {
        var he = (XA > cA || XA < HA) && F.call(this);
        he && (this.pdf.saveGraphicsState(), this.pdf.rect(this.margin[3], this.margin[0], OA, bA, null).clip().discardPath()), J.call(this, b, T), he && this.pdf.restoreGraphicsState();
      }
      this.lineWidth = mA;
    }
    else this.lineWidth = jA, J.call(this, b, T), this.lineWidth = mA;
    this.path = YA;
  }, J = function(b, T) {
    if ((b !== "stroke" || T || !m.call(this)) && (b === "stroke" || T || !p.call(this))) {
      for (var _, j, $ = [], uA = this.path, hA = 0; hA < uA.length; hA++) {
        var mA = uA[hA];
        switch (mA.type) {
          case "begin":
            $.push({ begin: !0 });
            break;
          case "close":
            $.push({ close: !0 });
            break;
          case "mt":
            $.push({ start: mA, deltas: [], abs: [] });
            break;
          case "lt":
            var jA = $.length;
            if (uA[hA - 1] && !isNaN(uA[hA - 1].x) && (_ = [mA.x - uA[hA - 1].x, mA.y - uA[hA - 1].y], jA > 0)) {
              for (; jA >= 0; jA--) if ($[jA - 1].close !== !0 && $[jA - 1].begin !== !0) {
                $[jA - 1].deltas.push(_), $[jA - 1].abs.push(mA);
                break;
              }
            }
            break;
          case "bct":
            _ = [mA.x1 - uA[hA - 1].x, mA.y1 - uA[hA - 1].y, mA.x2 - uA[hA - 1].x, mA.y2 - uA[hA - 1].y, mA.x - uA[hA - 1].x, mA.y - uA[hA - 1].y], $[$.length - 1].deltas.push(_);
            break;
          case "qct":
            var VA = uA[hA - 1].x + 2 / 3 * (mA.x1 - uA[hA - 1].x), YA = uA[hA - 1].y + 2 / 3 * (mA.y1 - uA[hA - 1].y), nA = mA.x + 2 / 3 * (mA.x1 - mA.x), UA = mA.y + 2 / 3 * (mA.y1 - mA.y), yA = mA.x, G = mA.y;
            _ = [VA - uA[hA - 1].x, YA - uA[hA - 1].y, nA - uA[hA - 1].x, UA - uA[hA - 1].y, yA - uA[hA - 1].x, G - uA[hA - 1].y], $[$.length - 1].deltas.push(_);
            break;
          case "arc":
            $.push({ deltas: [], abs: [], arc: !0 }), Array.isArray($[$.length - 1].abs) && $[$.length - 1].abs.push(mA);
        }
      }
      j = T ? null : b === "stroke" ? "stroke" : "fill";
      for (var CA = !1, DA = 0; DA < $.length; DA++) if ($[DA].arc) for (var cA = $[DA].abs, HA = 0; HA < cA.length; HA++) {
        var XA = cA[HA];
        XA.type === "arc" ? O.call(this, XA.x, XA.y, XA.radius, XA.startAngle, XA.endAngle, XA.counterclockwise, void 0, T, !CA) : k.call(this, XA.x, XA.y), CA = !0;
      }
      else if ($[DA].close === !0) this.pdf.internal.out("h"), CA = !1;
      else if ($[DA].begin !== !0) {
        var OA = $[DA].start.x, ZA = $[DA].start.y;
        U.call(this, $[DA].deltas, OA, ZA), CA = !0;
      }
      j && q.call(this, j), T && lA.call(this);
    }
  }, Y = function(b) {
    var T = this.pdf.internal.getFontSize() / this.pdf.internal.scaleFactor, _ = T * (this.pdf.internal.getLineHeightFactor() - 1);
    switch (this.ctx.textBaseline) {
      case "bottom":
        return b - _;
      case "top":
        return b + T - _;
      case "hanging":
        return b + T - 2 * _;
      case "middle":
        return b + T / 2 - _;
      case "ideographic":
        return b;
      case "alphabetic":
      default:
        return b;
    }
  }, W = function(b) {
    return b + this.pdf.internal.getFontSize() / this.pdf.internal.scaleFactor * (this.pdf.internal.getLineHeightFactor() - 1);
  };
  g.prototype.createLinearGradient = function() {
    var b = function() {
    };
    return b.colorStops = [], b.addColorStop = function(T, _) {
      this.colorStops.push([T, _]);
    }, b.getColor = function() {
      return this.colorStops.length === 0 ? "#000000" : this.colorStops[0][1];
    }, b.isCanvasGradient = !0, b;
  }, g.prototype.createPattern = function() {
    return this.createLinearGradient();
  }, g.prototype.createRadialGradient = function() {
    return this.createLinearGradient();
  };
  var O = function(b, T, _, j, $, uA, hA, mA, jA) {
    for (var VA = X.call(this, _, j, $, uA), YA = 0; YA < VA.length; YA++) {
      var nA = VA[YA];
      YA === 0 && (jA ? I.call(this, nA.x1 + b, nA.y1 + T) : k.call(this, nA.x1 + b, nA.y1 + T)), R.call(this, b, T, nA.x2, nA.y2, nA.x3, nA.y3, nA.x4, nA.y4);
    }
    mA ? lA.call(this) : q.call(this, hA);
  }, q = function(b) {
    switch (b) {
      case "stroke":
        this.pdf.internal.out("S");
        break;
      case "fill":
        this.pdf.internal.out("f");
    }
  }, lA = function() {
    this.pdf.clip(), this.pdf.discardPath();
  }, I = function(b, T) {
    this.pdf.internal.out(A(b) + " " + r(T) + " m");
  }, Q = function(b) {
    var T;
    switch (b.align) {
      case "right":
      case "end":
        T = "right";
        break;
      case "center":
        T = "center";
        break;
      case "left":
      case "start":
      default:
        T = "left";
    }
    var _ = this.pdf.getTextDimensions(b.text), j = Y.call(this, b.y), $ = W.call(this, j) - _.h, uA = this.ctx.transform.applyToPoint(new a(b.x, j)), hA = this.ctx.transform.decompose(), mA = new c();
    mA = (mA = (mA = mA.multiply(hA.translate)).multiply(hA.skew)).multiply(hA.scale);
    for (var jA, VA, YA, nA = this.ctx.transform.applyToRectangle(new o(b.x, j, _.w, _.h)), UA = mA.applyToRectangle(new o(b.x, $, _.w, _.h)), yA = D.call(this, UA), G = [], CA = 0; CA < yA.length; CA += 1) G.indexOf(yA[CA]) === -1 && G.push(yA[CA]);
    if (P(G), this.autoPaging) for (var DA = G[0], cA = G[G.length - 1], HA = DA; HA < cA + 1; HA++) {
      this.pdf.setPage(HA);
      var XA = HA === 1 ? this.posY + this.margin[0] : this.margin[0], OA = this.pdf.internal.pageSize.height - this.posY - this.margin[0] - this.margin[2], ZA = this.pdf.internal.pageSize.height - this.margin[2], sA = ZA - this.margin[0], bA = this.pdf.internal.pageSize.width - this.margin[1], PA = bA - this.margin[3], te = HA === 1 ? 0 : OA + (HA - 2) * sA;
      if (this.ctx.clip_path.length !== 0) {
        var he = this.path;
        jA = JSON.parse(JSON.stringify(this.ctx.clip_path)), this.path = E(jA, this.posX + this.margin[3], -1 * te + XA), J.call(this, "fill", !0), this.path = he;
      }
      var re = E([JSON.parse(JSON.stringify(UA))], this.posX + this.margin[3], -te + XA + this.ctx.prevPageLastElemOffset)[0];
      b.scale >= 0.01 && (VA = this.pdf.internal.getFontSize(), this.pdf.setFontSize(VA * b.scale), YA = this.lineWidth, this.lineWidth = YA * b.scale);
      var ce = this.autoPaging !== "text";
      if (ce || re.y + re.h <= ZA) {
        if (ce || re.y >= XA && re.x <= bA) {
          var RA = ce ? b.text : this.pdf.splitTextToSize(b.text, b.maxWidth || bA - re.x)[0], Pe = E([JSON.parse(JSON.stringify(nA))], this.posX + this.margin[3], -te + XA + this.ctx.prevPageLastElemOffset)[0], Ce = ce && (HA > DA || HA < cA) && F.call(this);
          Ce && (this.pdf.saveGraphicsState(), this.pdf.rect(this.margin[3], this.margin[0], PA, sA, null).clip().discardPath()), this.pdf.text(RA, Pe.x, Pe.y, { angle: b.angle, align: T, renderingMode: b.renderingMode }), Ce && this.pdf.restoreGraphicsState();
        }
      } else re.y < ZA && (this.ctx.prevPageLastElemOffset += ZA - re.y);
      b.scale >= 0.01 && (this.pdf.setFontSize(VA), this.lineWidth = YA);
    }
    else b.scale >= 0.01 && (VA = this.pdf.internal.getFontSize(), this.pdf.setFontSize(VA * b.scale), YA = this.lineWidth, this.lineWidth = YA * b.scale), this.pdf.text(b.text, uA.x + this.posX, uA.y + this.posY, { angle: b.angle, align: T, renderingMode: b.renderingMode, maxWidth: b.maxWidth }), b.scale >= 0.01 && (this.pdf.setFontSize(VA), this.lineWidth = YA);
  }, k = function(b, T, _, j) {
    _ = _ || 0, j = j || 0, this.pdf.internal.out(A(b + _) + " " + r(T + j) + " l");
  }, U = function(b, T, _) {
    return this.pdf.lines(b, T, _, null, null);
  }, R = function(b, T, _, j, $, uA, hA, mA) {
    this.pdf.internal.out([e(n(_ + b)), e(s(j + T)), e(n($ + b)), e(s(uA + T)), e(n(hA + b)), e(s(mA + T)), "c"].join(" "));
  }, X = function(b, T, _, j) {
    for (var $ = 2 * Math.PI, uA = Math.PI / 2; T > _; ) T -= $;
    var hA = Math.abs(_ - T);
    hA < $ && j && (hA = $ - hA);
    for (var mA = [], jA = j ? -1 : 1, VA = T; hA > 1e-5; ) {
      var YA = VA + jA * Math.min(hA, uA);
      mA.push(AA.call(this, b, VA, YA)), hA -= Math.abs(YA - VA), VA = YA;
    }
    return mA;
  }, AA = function(b, T, _) {
    var j = (_ - T) / 2, $ = b * Math.cos(j), uA = b * Math.sin(j), hA = $, mA = -uA, jA = hA * hA + mA * mA, VA = jA + hA * $ + mA * uA, YA = 4 / 3 * (Math.sqrt(2 * jA * VA) - VA) / (hA * uA - mA * $), nA = hA - YA * mA, UA = mA + YA * hA, yA = nA, G = -UA, CA = j + T, DA = Math.cos(CA), cA = Math.sin(CA);
    return { x1: b * Math.cos(T), y1: b * Math.sin(T), x2: nA * DA - UA * cA, y2: nA * cA + UA * DA, x3: yA * DA - G * cA, y3: yA * cA + G * DA, x4: b * Math.cos(_), y4: b * Math.sin(_) };
  }, z = function(b) {
    return 180 * b / Math.PI;
  }, aA = function(b, T, _, j, $, uA) {
    var hA = b + 0.5 * (_ - b), mA = T + 0.5 * (j - T), jA = $ + 0.5 * (_ - $), VA = uA + 0.5 * (j - uA), YA = Math.min(b, $, hA, jA), nA = Math.max(b, $, hA, jA), UA = Math.min(T, uA, mA, VA), yA = Math.max(T, uA, mA, VA);
    return new o(YA, UA, nA - YA, yA - UA);
  }, rA = function(b, T, _, j, $, uA, hA, mA) {
    var jA, VA, YA, nA, UA, yA, G, CA, DA, cA, HA, XA, OA, ZA, sA = _ - b, bA = j - T, PA = $ - _, te = uA - j, he = hA - $, re = mA - uA;
    for (VA = 0; VA < 41; VA++) DA = (G = (YA = b + (jA = VA / 40) * sA) + jA * ((UA = _ + jA * PA) - YA)) + jA * (UA + jA * ($ + jA * he - UA) - G), cA = (CA = (nA = T + jA * bA) + jA * ((yA = j + jA * te) - nA)) + jA * (yA + jA * (uA + jA * re - yA) - CA), VA == 0 ? (HA = DA, XA = cA, OA = DA, ZA = cA) : (HA = Math.min(HA, DA), XA = Math.min(XA, cA), OA = Math.max(OA, DA), ZA = Math.max(ZA, cA));
    return new o(Math.round(HA), Math.round(XA), Math.round(OA - HA), Math.round(ZA - XA));
  }, QA = function() {
    if (this.prevLineDash || this.ctx.lineDash.length || this.ctx.lineDashOffset) {
      var b, T, _ = (b = this.ctx.lineDash, T = this.ctx.lineDashOffset, JSON.stringify({ lineDash: b, lineDashOffset: T }));
      this.prevLineDash !== _ && (this.pdf.setLineDash(this.ctx.lineDash, this.ctx.lineDashOffset), this.prevLineDash = _);
    }
  };
})(Fe.API), /**
 * @license
 * jsPDF filters PlugIn
 * Copyright (c) 2014 Aras Abbasi
 *
 * Licensed under the MIT License.
 * http://opensource.org/licenses/mit-license
 */
function(t) {
  var e = function(s) {
    var a, o, c, d, h, g, w, p, m, F;
    for (o = [], c = 0, d = (s += a = "\0\0\0\0".slice(s.length % 4 || 4)).length; d > c; c += 4) (h = (s.charCodeAt(c) << 24) + (s.charCodeAt(c + 1) << 16) + (s.charCodeAt(c + 2) << 8) + s.charCodeAt(c + 3)) !== 0 ? (g = (h = ((h = ((h = ((h = (h - (F = h % 85)) / 85) - (m = h % 85)) / 85) - (p = h % 85)) / 85) - (w = h % 85)) / 85) % 85, o.push(g + 33, w + 33, p + 33, m + 33, F + 33)) : o.push(122);
    return function(D, v) {
      for (var E = v; E > 0; E--) D.pop();
    }(o, a.length), String.fromCharCode.apply(String, o) + "~>";
  }, A = function(s) {
    var a, o, c, d, h, g = String, w = "length", p = 255, m = "charCodeAt", F = "slice", D = "replace";
    for (s[F](-2), s = s[F](0, -2)[D](/\s/g, "")[D]("z", "!!!!!"), c = [], d = 0, h = (s += a = "uuuuu"[F](s[w] % 5 || 5))[w]; h > d; d += 5) o = 52200625 * (s[m](d) - 33) + 614125 * (s[m](d + 1) - 33) + 7225 * (s[m](d + 2) - 33) + 85 * (s[m](d + 3) - 33) + (s[m](d + 4) - 33), c.push(p & o >> 24, p & o >> 16, p & o >> 8, p & o);
    return function(v, E) {
      for (var P = E; P > 0; P--) v.pop();
    }(c, a[w]), g.fromCharCode.apply(g, c);
  }, r = function(s) {
    var a = new RegExp(/^([0-9A-Fa-f]{2})+$/);
    if ((s = s.replace(/\s/g, "")).indexOf(">") !== -1 && (s = s.substr(0, s.indexOf(">"))), s.length % 2 && (s += "0"), a.test(s) === !1) return "";
    for (var o = "", c = 0; c < s.length; c += 2) o += String.fromCharCode("0x" + (s[c] + s[c + 1]));
    return o;
  }, n = function(s) {
    for (var a = new Uint8Array(s.length), o = s.length; o--; ) a[o] = s.charCodeAt(o);
    return s = (a = Vc(a)).reduce(function(c, d) {
      return c + String.fromCharCode(d);
    }, "");
  };
  t.processDataByFilters = function(s, a) {
    var o = 0, c = s || "", d = [];
    for (typeof (a = a || []) == "string" && (a = [a]), o = 0; o < a.length; o += 1) switch (a[o]) {
      case "ASCII85Decode":
      case "/ASCII85Decode":
        c = A(c), d.push("/ASCII85Encode");
        break;
      case "ASCII85Encode":
      case "/ASCII85Encode":
        c = e(c), d.push("/ASCII85Decode");
        break;
      case "ASCIIHexDecode":
      case "/ASCIIHexDecode":
        c = r(c), d.push("/ASCIIHexEncode");
        break;
      case "ASCIIHexEncode":
      case "/ASCIIHexEncode":
        c = c.split("").map(function(h) {
          return ("0" + h.charCodeAt().toString(16)).slice(-2);
        }).join("") + ">", d.push("/ASCIIHexDecode");
        break;
      case "FlateEncode":
      case "/FlateEncode":
        c = n(c), d.push("/FlateDecode");
        break;
      default:
        throw new Error('The filter: "' + a[o] + '" is not implemented');
    }
    return { data: c, reverseChain: d.reverse().join(" ") };
  };
}(Fe.API), /**
 * @license
 * jsPDF fileloading PlugIn
 * Copyright (c) 2018 Aras Abbasi (aras.abbasi@gmail.com)
 *
 * Licensed under the MIT License.
 * http://opensource.org/licenses/mit-license
 */
function(t) {
  t.loadFile = function(e, A, r) {
    return function(n, s, a) {
      s = s !== !1, a = typeof a == "function" ? a : function() {
      };
      var o = void 0;
      try {
        o = function(c, d, h) {
          var g = new XMLHttpRequest(), w = 0, p = function(m) {
            var F = m.length, D = [], v = String.fromCharCode;
            for (w = 0; w < F; w += 1) D.push(v(255 & m.charCodeAt(w)));
            return D.join("");
          };
          if (g.open("GET", c, !d), g.overrideMimeType("text/plain; charset=x-user-defined"), d === !1 && (g.onload = function() {
            g.status === 200 ? h(p(this.responseText)) : h(void 0);
          }), g.send(null), d && g.status === 200) return p(g.responseText);
        }(n, s, a);
      } catch {
      }
      return o;
    }(e, A, r);
  }, t.loadImageFile = t.loadFile;
}(Fe.API), function(t) {
  function e() {
    return (Qe.html2canvas ? Promise.resolve(Qe.html2canvas) : Promise.resolve().then(() => WC)).catch(function(a) {
      return Promise.reject(new Error("Could not load html2canvas: " + a));
    }).then(function(a) {
      return a.default ? a.default : a;
    });
  }
  function A() {
    return (Qe.DOMPurify ? Promise.resolve(Qe.DOMPurify) : import("./purify.es-DHbHSKL1.js")).catch(function(a) {
      return Promise.reject(new Error("Could not load dompurify: " + a));
    }).then(function(a) {
      return a.default ? a.default : a;
    });
  }
  var r = function(a) {
    var o = et(a);
    return o === "undefined" ? "undefined" : o === "string" || a instanceof String ? "string" : o === "number" || a instanceof Number ? "number" : o === "function" || a instanceof Function ? "function" : a && a.constructor === Array ? "array" : a && a.nodeType === 1 ? "element" : o === "object" ? "object" : "unknown";
  }, n = function(a, o) {
    var c = document.createElement(a);
    for (var d in o.className && (c.className = o.className), o.innerHTML && o.dompurify && (c.innerHTML = o.dompurify.sanitize(o.innerHTML)), o.style) c.style[d] = o.style[d];
    return c;
  }, s = function a(o) {
    var c = Object.assign(a.convert(Promise.resolve()), JSON.parse(JSON.stringify(a.template))), d = a.convert(Promise.resolve(), c);
    return d = (d = d.setProgress(1, a, 1, [a])).set(o);
  };
  (s.prototype = Object.create(Promise.prototype)).constructor = s, s.convert = function(a, o) {
    return a.__proto__ = o || s.prototype, a;
  }, s.template = { prop: { src: null, container: null, overlay: null, canvas: null, img: null, pdf: null, pageSize: null, callback: function() {
  } }, progress: { val: 0, state: null, n: 0, stack: [] }, opt: { filename: "file.pdf", margin: [0, 0, 0, 0], enableLinks: !0, x: 0, y: 0, html2canvas: {}, jsPDF: {}, backgroundColor: "transparent" } }, s.prototype.from = function(a, o) {
    return this.then(function() {
      switch (o = o || function(c) {
        switch (r(c)) {
          case "string":
            return "string";
          case "element":
            return c.nodeName.toLowerCase() === "canvas" ? "canvas" : "element";
          default:
            return "unknown";
        }
      }(a)) {
        case "string":
          return this.then(A).then(function(c) {
            return this.set({ src: n("div", { innerHTML: a, dompurify: c }) });
          });
        case "element":
          return this.set({ src: a });
        case "canvas":
          return this.set({ canvas: a });
        case "img":
          return this.set({ img: a });
        default:
          return this.error("Unknown source type.");
      }
    });
  }, s.prototype.to = function(a) {
    switch (a) {
      case "container":
        return this.toContainer();
      case "canvas":
        return this.toCanvas();
      case "img":
        return this.toImg();
      case "pdf":
        return this.toPdf();
      default:
        return this.error("Invalid target.");
    }
  }, s.prototype.toContainer = function() {
    return this.thenList([function() {
      return this.prop.src || this.error("Cannot duplicate - no source HTML.");
    }, function() {
      return this.prop.pageSize || this.setPageSize();
    }]).then(function() {
      var a = { position: "relative", display: "inline-block", width: (typeof this.opt.width != "number" || isNaN(this.opt.width) || typeof this.opt.windowWidth != "number" || isNaN(this.opt.windowWidth) ? Math.max(this.prop.src.clientWidth, this.prop.src.scrollWidth, this.prop.src.offsetWidth) : this.opt.windowWidth) + "px", left: 0, right: 0, top: 0, margin: "auto", backgroundColor: this.opt.backgroundColor }, o = function c(d, h) {
        for (var g = d.nodeType === 3 ? document.createTextNode(d.nodeValue) : d.cloneNode(!1), w = d.firstChild; w; w = w.nextSibling) h !== !0 && w.nodeType === 1 && w.nodeName === "SCRIPT" || g.appendChild(c(w, h));
        return d.nodeType === 1 && (d.nodeName === "CANVAS" ? (g.width = d.width, g.height = d.height, g.getContext("2d").drawImage(d, 0, 0)) : d.nodeName !== "TEXTAREA" && d.nodeName !== "SELECT" || (g.value = d.value), g.addEventListener("load", function() {
          g.scrollTop = d.scrollTop, g.scrollLeft = d.scrollLeft;
        }, !0)), g;
      }(this.prop.src, this.opt.html2canvas.javascriptEnabled);
      o.tagName === "BODY" && (a.height = Math.max(document.body.scrollHeight, document.body.offsetHeight, document.documentElement.clientHeight, document.documentElement.scrollHeight, document.documentElement.offsetHeight) + "px"), this.prop.overlay = n("div", { className: "html2pdf__overlay", style: { position: "fixed", overflow: "hidden", zIndex: 1e3, left: "-100000px", right: 0, bottom: 0, top: 0 } }), this.prop.container = n("div", { className: "html2pdf__container", style: a }), this.prop.container.appendChild(o), this.prop.container.firstChild.appendChild(n("div", { style: { clear: "both", border: "0 none transparent", margin: 0, padding: 0, height: 0 } })), this.prop.container.style.float = "none", this.prop.overlay.appendChild(this.prop.container), document.body.appendChild(this.prop.overlay), this.prop.container.firstChild.style.position = "relative", this.prop.container.height = Math.max(this.prop.container.firstChild.clientHeight, this.prop.container.firstChild.scrollHeight, this.prop.container.firstChild.offsetHeight) + "px";
    });
  }, s.prototype.toCanvas = function() {
    var a = [function() {
      return document.body.contains(this.prop.container) || this.toContainer();
    }];
    return this.thenList(a).then(e).then(function(o) {
      var c = Object.assign({}, this.opt.html2canvas);
      return delete c.onrendered, o(this.prop.container, c);
    }).then(function(o) {
      (this.opt.html2canvas.onrendered || function() {
      })(o), this.prop.canvas = o, document.body.removeChild(this.prop.overlay);
    });
  }, s.prototype.toContext2d = function() {
    var a = [function() {
      return document.body.contains(this.prop.container) || this.toContainer();
    }];
    return this.thenList(a).then(e).then(function(o) {
      var c = this.opt.jsPDF, d = this.opt.fontFaces, h = typeof this.opt.width != "number" || isNaN(this.opt.width) || typeof this.opt.windowWidth != "number" || isNaN(this.opt.windowWidth) ? 1 : this.opt.width / this.opt.windowWidth, g = Object.assign({ async: !0, allowTaint: !0, scale: h, scrollX: this.opt.scrollX || 0, scrollY: this.opt.scrollY || 0, backgroundColor: "#ffffff", imageTimeout: 15e3, logging: !0, proxy: null, removeContainer: !0, foreignObjectRendering: !1, useCORS: !1 }, this.opt.html2canvas);
      if (delete g.onrendered, c.context2d.autoPaging = this.opt.autoPaging === void 0 || this.opt.autoPaging, c.context2d.posX = this.opt.x, c.context2d.posY = this.opt.y, c.context2d.margin = this.opt.margin, c.context2d.fontFaces = d, d) for (var w = 0; w < d.length; ++w) {
        var p = d[w], m = p.src.find(function(F) {
          return F.format === "truetype";
        });
        m && c.addFont(m.url, p.ref.name, p.ref.style);
      }
      return g.windowHeight = g.windowHeight || 0, g.windowHeight = g.windowHeight == 0 ? Math.max(this.prop.container.clientHeight, this.prop.container.scrollHeight, this.prop.container.offsetHeight) : g.windowHeight, c.context2d.save(!0), o(this.prop.container, g);
    }).then(function(o) {
      this.opt.jsPDF.context2d.restore(!0), (this.opt.html2canvas.onrendered || function() {
      })(o), this.prop.canvas = o, document.body.removeChild(this.prop.overlay);
    });
  }, s.prototype.toImg = function() {
    return this.thenList([function() {
      return this.prop.canvas || this.toCanvas();
    }]).then(function() {
      var a = this.prop.canvas.toDataURL("image/" + this.opt.image.type, this.opt.image.quality);
      this.prop.img = document.createElement("img"), this.prop.img.src = a;
    });
  }, s.prototype.toPdf = function() {
    return this.thenList([function() {
      return this.toContext2d();
    }]).then(function() {
      this.prop.pdf = this.prop.pdf || this.opt.jsPDF;
    });
  }, s.prototype.output = function(a, o, c) {
    return (c = c || "pdf").toLowerCase() === "img" || c.toLowerCase() === "image" ? this.outputImg(a, o) : this.outputPdf(a, o);
  }, s.prototype.outputPdf = function(a, o) {
    return this.thenList([function() {
      return this.prop.pdf || this.toPdf();
    }]).then(function() {
      return this.prop.pdf.output(a, o);
    });
  }, s.prototype.outputImg = function(a) {
    return this.thenList([function() {
      return this.prop.img || this.toImg();
    }]).then(function() {
      switch (a) {
        case void 0:
        case "img":
          return this.prop.img;
        case "datauristring":
        case "dataurlstring":
          return this.prop.img.src;
        case "datauri":
        case "dataurl":
          return document.location.href = this.prop.img.src;
        default:
          throw 'Image output type "' + a + '" is not supported.';
      }
    });
  }, s.prototype.save = function(a) {
    return this.thenList([function() {
      return this.prop.pdf || this.toPdf();
    }]).set(a ? { filename: a } : null).then(function() {
      this.prop.pdf.save(this.opt.filename);
    });
  }, s.prototype.doCallback = function() {
    return this.thenList([function() {
      return this.prop.pdf || this.toPdf();
    }]).then(function() {
      this.prop.callback(this.prop.pdf);
    });
  }, s.prototype.set = function(a) {
    if (r(a) !== "object") return this;
    var o = Object.keys(a || {}).map(function(c) {
      if (c in s.template.prop) return function() {
        this.prop[c] = a[c];
      };
      switch (c) {
        case "margin":
          return this.setMargin.bind(this, a.margin);
        case "jsPDF":
          return function() {
            return this.opt.jsPDF = a.jsPDF, this.setPageSize();
          };
        case "pageSize":
          return this.setPageSize.bind(this, a.pageSize);
        default:
          return function() {
            this.opt[c] = a[c];
          };
      }
    }, this);
    return this.then(function() {
      return this.thenList(o);
    });
  }, s.prototype.get = function(a, o) {
    return this.then(function() {
      var c = a in s.template.prop ? this.prop[a] : this.opt[a];
      return o ? o(c) : c;
    });
  }, s.prototype.setMargin = function(a) {
    return this.then(function() {
      switch (r(a)) {
        case "number":
          a = [a, a, a, a];
        case "array":
          if (a.length === 2 && (a = [a[0], a[1], a[0], a[1]]), a.length === 4) break;
        default:
          return this.error("Invalid margin array.");
      }
      this.opt.margin = a;
    }).then(this.setPageSize);
  }, s.prototype.setPageSize = function(a) {
    function o(c, d) {
      return Math.floor(c * d / 72 * 96);
    }
    return this.then(function() {
      (a = a || Fe.getPageSize(this.opt.jsPDF)).hasOwnProperty("inner") || (a.inner = { width: a.width - this.opt.margin[1] - this.opt.margin[3], height: a.height - this.opt.margin[0] - this.opt.margin[2] }, a.inner.px = { width: o(a.inner.width, a.k), height: o(a.inner.height, a.k) }, a.inner.ratio = a.inner.height / a.inner.width), this.prop.pageSize = a;
    });
  }, s.prototype.setProgress = function(a, o, c, d) {
    return a != null && (this.progress.val = a), o != null && (this.progress.state = o), c != null && (this.progress.n = c), d != null && (this.progress.stack = d), this.progress.ratio = this.progress.val / this.progress.state, this;
  }, s.prototype.updateProgress = function(a, o, c, d) {
    return this.setProgress(a ? this.progress.val + a : null, o || null, c ? this.progress.n + c : null, d ? this.progress.stack.concat(d) : null);
  }, s.prototype.then = function(a, o) {
    var c = this;
    return this.thenCore(a, o, function(d, h) {
      return c.updateProgress(null, null, 1, [d]), Promise.prototype.then.call(this, function(g) {
        return c.updateProgress(null, d), g;
      }).then(d, h).then(function(g) {
        return c.updateProgress(1), g;
      });
    });
  }, s.prototype.thenCore = function(a, o, c) {
    c = c || Promise.prototype.then, a && (a = a.bind(this)), o && (o = o.bind(this));
    var d = Promise.toString().indexOf("[native code]") !== -1 && Promise.name === "Promise" ? this : s.convert(Object.assign({}, this), Promise.prototype), h = c.call(d, a, o);
    return s.convert(h, this.__proto__);
  }, s.prototype.thenExternal = function(a, o) {
    return Promise.prototype.then.call(this, a, o);
  }, s.prototype.thenList = function(a) {
    var o = this;
    return a.forEach(function(c) {
      o = o.thenCore(c);
    }), o;
  }, s.prototype.catch = function(a) {
    a && (a = a.bind(this));
    var o = Promise.prototype.catch.call(this, a);
    return s.convert(o, this);
  }, s.prototype.catchExternal = function(a) {
    return Promise.prototype.catch.call(this, a);
  }, s.prototype.error = function(a) {
    return this.then(function() {
      throw new Error(a);
    });
  }, s.prototype.using = s.prototype.set, s.prototype.saveAs = s.prototype.save, s.prototype.export = s.prototype.output, s.prototype.run = s.prototype.then, Fe.getPageSize = function(a, o, c) {
    if (et(a) === "object") {
      var d = a;
      a = d.orientation, o = d.unit || o, c = d.format || c;
    }
    o = o || "mm", c = c || "a4", a = ("" + (a || "P")).toLowerCase();
    var h, g = ("" + c).toLowerCase(), w = { a0: [2383.94, 3370.39], a1: [1683.78, 2383.94], a2: [1190.55, 1683.78], a3: [841.89, 1190.55], a4: [595.28, 841.89], a5: [419.53, 595.28], a6: [297.64, 419.53], a7: [209.76, 297.64], a8: [147.4, 209.76], a9: [104.88, 147.4], a10: [73.7, 104.88], b0: [2834.65, 4008.19], b1: [2004.09, 2834.65], b2: [1417.32, 2004.09], b3: [1000.63, 1417.32], b4: [708.66, 1000.63], b5: [498.9, 708.66], b6: [354.33, 498.9], b7: [249.45, 354.33], b8: [175.75, 249.45], b9: [124.72, 175.75], b10: [87.87, 124.72], c0: [2599.37, 3676.54], c1: [1836.85, 2599.37], c2: [1298.27, 1836.85], c3: [918.43, 1298.27], c4: [649.13, 918.43], c5: [459.21, 649.13], c6: [323.15, 459.21], c7: [229.61, 323.15], c8: [161.57, 229.61], c9: [113.39, 161.57], c10: [79.37, 113.39], dl: [311.81, 623.62], letter: [612, 792], "government-letter": [576, 756], legal: [612, 1008], "junior-legal": [576, 360], ledger: [1224, 792], tabloid: [792, 1224], "credit-card": [153, 243] };
    switch (o) {
      case "pt":
        h = 1;
        break;
      case "mm":
        h = 72 / 25.4;
        break;
      case "cm":
        h = 72 / 2.54;
        break;
      case "in":
        h = 72;
        break;
      case "px":
        h = 0.75;
        break;
      case "pc":
      case "em":
        h = 12;
        break;
      case "ex":
        h = 6;
        break;
      default:
        throw "Invalid unit: " + o;
    }
    var p, m = 0, F = 0;
    if (w.hasOwnProperty(g)) m = w[g][1] / h, F = w[g][0] / h;
    else try {
      m = c[1], F = c[0];
    } catch {
      throw new Error("Invalid format: " + c);
    }
    if (a === "p" || a === "portrait") a = "p", F > m && (p = F, F = m, m = p);
    else {
      if (a !== "l" && a !== "landscape") throw "Invalid orientation: " + a;
      a = "l", m > F && (p = F, F = m, m = p);
    }
    return { width: F, height: m, unit: o, k: h, orientation: a };
  }, t.html = function(a, o) {
    (o = o || {}).callback = o.callback || function() {
    }, o.html2canvas = o.html2canvas || {}, o.html2canvas.canvas = o.html2canvas.canvas || this.canvas, o.jsPDF = o.jsPDF || this, o.fontFaces = o.fontFaces ? o.fontFaces.map(zc) : null;
    var c = new s(o);
    return o.worker ? c : c.from(a).doCallback();
  };
}(Fe.API), Fe.API.addJS = function(t) {
  return Cf = t, this.internal.events.subscribe("postPutResources", function() {
    uo = this.internal.newObject(), this.internal.out("<<"), this.internal.out("/Names [(EmbeddedJS) " + (uo + 1) + " 0 R]"), this.internal.out(">>"), this.internal.out("endobj"), yf = this.internal.newObject(), this.internal.out("<<"), this.internal.out("/S /JavaScript"), this.internal.out("/JS (" + Cf + ")"), this.internal.out(">>"), this.internal.out("endobj");
  }), this.internal.events.subscribe("putCatalog", function() {
    uo !== void 0 && yf !== void 0 && this.internal.out("/Names <</JavaScript " + uo + " 0 R>>");
  }), this;
}, /**
 * @license
 * Copyright (c) 2014 Steven Spungin (TwelveTone LLC)  steven@twelvetone.tv
 *
 * Licensed under the MIT License.
 * http://opensource.org/licenses/mit-license
 */
function(t) {
  var e;
  t.events.push(["postPutResources", function() {
    var A = this, r = /^(\d+) 0 obj$/;
    if (this.outline.root.children.length > 0) for (var n = A.outline.render().split(/\r\n/), s = 0; s < n.length; s++) {
      var a = n[s], o = r.exec(a);
      if (o != null) {
        var c = o[1];
        A.internal.newObjectDeferredBegin(c, !1);
      }
      A.internal.write(a);
    }
    if (this.outline.createNamedDestinations) {
      var d = this.internal.pages.length, h = [];
      for (s = 0; s < d; s++) {
        var g = A.internal.newObject();
        h.push(g);
        var w = A.internal.getPageInfo(s + 1);
        A.internal.write("<< /D[" + w.objId + " 0 R /XYZ null null null]>> endobj");
      }
      var p = A.internal.newObject();
      for (A.internal.write("<< /Names [ "), s = 0; s < h.length; s++) A.internal.write("(page_" + (s + 1) + ")" + h[s] + " 0 R");
      A.internal.write(" ] >>", "endobj"), e = A.internal.newObject(), A.internal.write("<< /Dests " + p + " 0 R"), A.internal.write(">>", "endobj");
    }
  }]), t.events.push(["putCatalog", function() {
    this.outline.root.children.length > 0 && (this.internal.write("/Outlines", this.outline.makeRef(this.outline.root)), this.outline.createNamedDestinations && this.internal.write("/Names " + e + " 0 R"));
  }]), t.events.push(["initialized", function() {
    var A = this;
    A.outline = { createNamedDestinations: !1, root: { children: [] } }, A.outline.add = function(r, n, s) {
      var a = { title: n, options: s, children: [] };
      return r == null && (r = this.root), r.children.push(a), a;
    }, A.outline.render = function() {
      return this.ctx = {}, this.ctx.val = "", this.ctx.pdf = A, this.genIds_r(this.root), this.renderRoot(this.root), this.renderItems(this.root), this.ctx.val;
    }, A.outline.genIds_r = function(r) {
      r.id = A.internal.newObjectDeferred();
      for (var n = 0; n < r.children.length; n++) this.genIds_r(r.children[n]);
    }, A.outline.renderRoot = function(r) {
      this.objStart(r), this.line("/Type /Outlines"), r.children.length > 0 && (this.line("/First " + this.makeRef(r.children[0])), this.line("/Last " + this.makeRef(r.children[r.children.length - 1]))), this.line("/Count " + this.count_r({ count: 0 }, r)), this.objEnd();
    }, A.outline.renderItems = function(r) {
      for (var n = this.ctx.pdf.internal.getVerticalCoordinateString, s = 0; s < r.children.length; s++) {
        var a = r.children[s];
        this.objStart(a), this.line("/Title " + this.makeString(a.title)), this.line("/Parent " + this.makeRef(r)), s > 0 && this.line("/Prev " + this.makeRef(r.children[s - 1])), s < r.children.length - 1 && this.line("/Next " + this.makeRef(r.children[s + 1])), a.children.length > 0 && (this.line("/First " + this.makeRef(a.children[0])), this.line("/Last " + this.makeRef(a.children[a.children.length - 1])));
        var o = this.count = this.count_r({ count: 0 }, a);
        if (o > 0 && this.line("/Count " + o), a.options && a.options.pageNumber) {
          var c = A.internal.getPageInfo(a.options.pageNumber);
          this.line("/Dest [" + c.objId + " 0 R /XYZ 0 " + n(0) + " 0]");
        }
        this.objEnd();
      }
      for (var d = 0; d < r.children.length; d++) this.renderItems(r.children[d]);
    }, A.outline.line = function(r) {
      this.ctx.val += r + `\r
`;
    }, A.outline.makeRef = function(r) {
      return r.id + " 0 R";
    }, A.outline.makeString = function(r) {
      return "(" + A.internal.pdfEscape(r) + ")";
    }, A.outline.objStart = function(r) {
      this.ctx.val += `\r
` + r.id + ` 0 obj\r
<<\r
`;
    }, A.outline.objEnd = function() {
      this.ctx.val += `>> \r
endobj\r
`;
    }, A.outline.count_r = function(r, n) {
      for (var s = 0; s < n.children.length; s++) r.count++, this.count_r(r, n.children[s]);
      return r.count;
    };
  }]);
}(Fe.API), /**
 * @license
 *
 * Licensed under the MIT License.
 * http://opensource.org/licenses/mit-license
 */
function(t) {
  var e = [192, 193, 194, 195, 196, 197, 198, 199];
  t.processJPEG = function(A, r, n, s, a, o) {
    var c, d = this.decode.DCT_DECODE, h = null;
    if (typeof A == "string" || this.__addimage__.isArrayBuffer(A) || this.__addimage__.isArrayBufferView(A)) {
      switch (A = a || A, A = this.__addimage__.isArrayBuffer(A) ? new Uint8Array(A) : A, (c = function(g) {
        for (var w, p = 256 * g.charCodeAt(4) + g.charCodeAt(5), m = g.length, F = { width: 0, height: 0, numcomponents: 1 }, D = 4; D < m; D += 2) {
          if (D += p, e.indexOf(g.charCodeAt(D + 1)) !== -1) {
            w = 256 * g.charCodeAt(D + 5) + g.charCodeAt(D + 6), F = { width: 256 * g.charCodeAt(D + 7) + g.charCodeAt(D + 8), height: w, numcomponents: g.charCodeAt(D + 9) };
            break;
          }
          p = 256 * g.charCodeAt(D + 2) + g.charCodeAt(D + 3);
        }
        return F;
      }(A = this.__addimage__.isArrayBufferView(A) ? this.__addimage__.arrayBufferToBinaryString(A) : A)).numcomponents) {
        case 1:
          o = this.color_spaces.DEVICE_GRAY;
          break;
        case 4:
          o = this.color_spaces.DEVICE_CMYK;
          break;
        case 3:
          o = this.color_spaces.DEVICE_RGB;
      }
      h = { data: A, width: c.width, height: c.height, colorSpace: o, bitsPerComponent: 8, filter: d, index: r, alias: n };
    }
    return h;
  };
}(Fe.API);
var $s, fo, bf, Ff, Qf, iw = function() {
  var t, e, A;
  function r(s) {
    var a, o, c, d, h, g, w, p, m, F, D, v, E, P;
    for (this.data = s, this.pos = 8, this.palette = [], this.imgData = [], this.transparency = {}, this.animation = null, this.text = {}, g = null; ; ) {
      switch (a = this.readUInt32(), m = (function() {
        var V, J;
        for (J = [], V = 0; V < 4; ++V) J.push(String.fromCharCode(this.data[this.pos++]));
        return J;
      }).call(this).join("")) {
        case "IHDR":
          this.width = this.readUInt32(), this.height = this.readUInt32(), this.bits = this.data[this.pos++], this.colorType = this.data[this.pos++], this.compressionMethod = this.data[this.pos++], this.filterMethod = this.data[this.pos++], this.interlaceMethod = this.data[this.pos++];
          break;
        case "acTL":
          this.animation = { numFrames: this.readUInt32(), numPlays: this.readUInt32() || 1 / 0, frames: [] };
          break;
        case "PLTE":
          this.palette = this.read(a);
          break;
        case "fcTL":
          g && this.animation.frames.push(g), this.pos += 4, g = { width: this.readUInt32(), height: this.readUInt32(), xOffset: this.readUInt32(), yOffset: this.readUInt32() }, h = this.readUInt16(), d = this.readUInt16() || 100, g.delay = 1e3 * h / d, g.disposeOp = this.data[this.pos++], g.blendOp = this.data[this.pos++], g.data = [];
          break;
        case "IDAT":
        case "fdAT":
          for (m === "fdAT" && (this.pos += 4, a -= 4), s = (g != null ? g.data : void 0) || this.imgData, v = 0; 0 <= a ? v < a : v > a; 0 <= a ? ++v : --v) s.push(this.data[this.pos++]);
          break;
        case "tRNS":
          switch (this.transparency = {}, this.colorType) {
            case 3:
              if (c = this.palette.length / 3, this.transparency.indexed = this.read(a), this.transparency.indexed.length > c) throw new Error("More transparent colors than palette size");
              if ((F = c - this.transparency.indexed.length) > 0) for (E = 0; 0 <= F ? E < F : E > F; 0 <= F ? ++E : --E) this.transparency.indexed.push(255);
              break;
            case 0:
              this.transparency.grayscale = this.read(a)[0];
              break;
            case 2:
              this.transparency.rgb = this.read(a);
          }
          break;
        case "tEXt":
          w = (D = this.read(a)).indexOf(0), p = String.fromCharCode.apply(String, D.slice(0, w)), this.text[p] = String.fromCharCode.apply(String, D.slice(w + 1));
          break;
        case "IEND":
          return g && this.animation.frames.push(g), this.colors = (function() {
            switch (this.colorType) {
              case 0:
              case 3:
              case 4:
                return 1;
              case 2:
              case 6:
                return 3;
            }
          }).call(this), this.hasAlphaChannel = (P = this.colorType) === 4 || P === 6, o = this.colors + (this.hasAlphaChannel ? 1 : 0), this.pixelBitlength = this.bits * o, this.colorSpace = (function() {
            switch (this.colors) {
              case 1:
                return "DeviceGray";
              case 3:
                return "DeviceRGB";
            }
          }).call(this), void (this.imgData = new Uint8Array(this.imgData));
        default:
          this.pos += a;
      }
      if (this.pos += 4, this.pos > this.data.length) throw new Error("Incomplete or corrupt PNG file");
    }
  }
  r.prototype.read = function(s) {
    var a, o;
    for (o = [], a = 0; 0 <= s ? a < s : a > s; 0 <= s ? ++a : --a) o.push(this.data[this.pos++]);
    return o;
  }, r.prototype.readUInt32 = function() {
    return this.data[this.pos++] << 24 | this.data[this.pos++] << 16 | this.data[this.pos++] << 8 | this.data[this.pos++];
  }, r.prototype.readUInt16 = function() {
    return this.data[this.pos++] << 8 | this.data[this.pos++];
  }, r.prototype.decodePixels = function(s) {
    var a = this.pixelBitlength / 8, o = new Uint8Array(this.width * this.height * a), c = 0, d = this;
    if (s == null && (s = this.imgData), s.length === 0) return new Uint8Array(0);
    function h(g, w, p, m) {
      var F, D, v, E, P, V, J, Y, W, O, q, lA, I, Q, k, U, R, X, AA, z, aA, rA = Math.ceil((d.width - g) / p), QA = Math.ceil((d.height - w) / m), b = d.width == rA && d.height == QA;
      for (Q = a * rA, lA = b ? o : new Uint8Array(Q * QA), V = s.length, I = 0, D = 0; I < QA && c < V; ) {
        switch (s[c++]) {
          case 0:
            for (E = R = 0; R < Q; E = R += 1) lA[D++] = s[c++];
            break;
          case 1:
            for (E = X = 0; X < Q; E = X += 1) F = s[c++], P = E < a ? 0 : lA[D - a], lA[D++] = (F + P) % 256;
            break;
          case 2:
            for (E = AA = 0; AA < Q; E = AA += 1) F = s[c++], v = (E - E % a) / a, k = I && lA[(I - 1) * Q + v * a + E % a], lA[D++] = (k + F) % 256;
            break;
          case 3:
            for (E = z = 0; z < Q; E = z += 1) F = s[c++], v = (E - E % a) / a, P = E < a ? 0 : lA[D - a], k = I && lA[(I - 1) * Q + v * a + E % a], lA[D++] = (F + Math.floor((P + k) / 2)) % 256;
            break;
          case 4:
            for (E = aA = 0; aA < Q; E = aA += 1) F = s[c++], v = (E - E % a) / a, P = E < a ? 0 : lA[D - a], I === 0 ? k = U = 0 : (k = lA[(I - 1) * Q + v * a + E % a], U = v && lA[(I - 1) * Q + (v - 1) * a + E % a]), J = P + k - U, Y = Math.abs(J - P), O = Math.abs(J - k), q = Math.abs(J - U), W = Y <= O && Y <= q ? P : O <= q ? k : U, lA[D++] = (F + W) % 256;
            break;
          default:
            throw new Error("Invalid filter algorithm: " + s[c - 1]);
        }
        if (!b) {
          var T = ((w + I * m) * d.width + g) * a, _ = I * Q;
          for (E = 0; E < rA; E += 1) {
            for (var j = 0; j < a; j += 1) o[T++] = lA[_++];
            T += (p - 1) * a;
          }
        }
        I++;
      }
    }
    return s = MB(s), d.interlaceMethod == 1 ? (h(0, 0, 8, 8), h(4, 0, 8, 8), h(0, 4, 4, 8), h(2, 0, 4, 4), h(0, 2, 2, 4), h(1, 0, 2, 2), h(0, 1, 1, 2)) : h(0, 0, 1, 1), o;
  }, r.prototype.decodePalette = function() {
    var s, a, o, c, d, h, g, w, p;
    for (o = this.palette, h = this.transparency.indexed || [], d = new Uint8Array((h.length || 0) + o.length), c = 0, s = 0, a = g = 0, w = o.length; g < w; a = g += 3) d[c++] = o[a], d[c++] = o[a + 1], d[c++] = o[a + 2], d[c++] = (p = h[s++]) != null ? p : 255;
    return d;
  }, r.prototype.copyToImageData = function(s, a) {
    var o, c, d, h, g, w, p, m, F, D, v;
    if (c = this.colors, F = null, o = this.hasAlphaChannel, this.palette.length && (F = (v = this._decodedPalette) != null ? v : this._decodedPalette = this.decodePalette(), c = 4, o = !0), m = (d = s.data || s).length, g = F || a, h = w = 0, c === 1) for (; h < m; ) p = F ? 4 * a[h / 4] : w, D = g[p++], d[h++] = D, d[h++] = D, d[h++] = D, d[h++] = o ? g[p++] : 255, w = p;
    else for (; h < m; ) p = F ? 4 * a[h / 4] : w, d[h++] = g[p++], d[h++] = g[p++], d[h++] = g[p++], d[h++] = o ? g[p++] : 255, w = p;
  }, r.prototype.decode = function() {
    var s;
    return s = new Uint8Array(this.width * this.height * 4), this.copyToImageData(s, this.decodePixels()), s;
  };
  var n = function() {
    if (Object.prototype.toString.call(Qe) === "[object Window]") {
      try {
        e = Qe.document.createElement("canvas"), A = e.getContext("2d");
      } catch {
        return !1;
      }
      return !0;
    }
    return !1;
  };
  return n(), t = function(s) {
    var a;
    if (n() === !0) return A.width = s.width, A.height = s.height, A.clearRect(0, 0, s.width, s.height), A.putImageData(s, 0, 0), (a = new Image()).src = e.toDataURL(), a;
    throw new Error("This method requires a Browser with Canvas-capability.");
  }, r.prototype.decodeFrames = function(s) {
    var a, o, c, d, h, g, w, p;
    if (this.animation) {
      for (p = [], o = h = 0, g = (w = this.animation.frames).length; h < g; o = ++h) a = w[o], c = s.createImageData(a.width, a.height), d = this.decodePixels(new Uint8Array(a.data)), this.copyToImageData(c, d), a.imageData = c, p.push(a.image = t(c));
      return p;
    }
  }, r.prototype.renderFrame = function(s, a) {
    var o, c, d;
    return o = (c = this.animation.frames)[a], d = c[a - 1], a === 0 && s.clearRect(0, 0, this.width, this.height), (d != null ? d.disposeOp : void 0) === 1 ? s.clearRect(d.xOffset, d.yOffset, d.width, d.height) : (d != null ? d.disposeOp : void 0) === 2 && s.putImageData(d.imageData, d.xOffset, d.yOffset), o.blendOp === 0 && s.clearRect(o.xOffset, o.yOffset, o.width, o.height), s.drawImage(o.image, o.xOffset, o.yOffset);
  }, r.prototype.animate = function(s) {
    var a, o, c, d, h, g, w = this;
    return o = 0, g = this.animation, d = g.numFrames, c = g.frames, h = g.numPlays, (a = function() {
      var p, m;
      if (p = o++ % d, m = c[p], w.renderFrame(s, p), d > 1 && o / d < h) return w.animation._timeout = setTimeout(a, m.delay);
    })();
  }, r.prototype.stopAnimation = function() {
    var s;
    return clearTimeout((s = this.animation) != null ? s._timeout : void 0);
  }, r.prototype.render = function(s) {
    var a, o;
    return s._png && s._png.stopAnimation(), s._png = this, s.width = this.width, s.height = this.height, a = s.getContext("2d"), this.animation ? (this.decodeFrames(a), this.animate(a)) : (o = a.createImageData(this.width, this.height), this.copyToImageData(o, this.decodePixels()), a.putImageData(o, 0, 0));
  }, r;
}();
/**
 * @license
 *
 * Copyright (c) 2014 James Robb, https://github.com/jamesbrobb
 *
 * Permission is hereby granted, free of charge, to any person obtaining
 * a copy of this software and associated documentation files (the
 * "Software"), to deal in the Software without restriction, including
 * without limitation the rights to use, copy, modify, merge, publish,
 * distribute, sublicense, and/or sell copies of the Software, and to
 * permit persons to whom the Software is furnished to do so, subject to
 * the following conditions:
 *
 * The above copyright notice and this permission notice shall be
 * included in all copies or substantial portions of the Software.
 *
 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
 * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
 * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
 * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 * ====================================================================
 */
/**
 * @license
 * (c) Dean McNamee <dean@gmail.com>, 2013.
 *
 * https://github.com/deanm/omggif
 *
 * Permission is hereby granted, free of charge, to any person obtaining a copy
 * of this software and associated documentation files (the "Software"), to
 * deal in the Software without restriction, including without limitation the
 * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
 * sell copies of the Software, and to permit persons to whom the Software is
 * furnished to do so, subject to the following conditions:
 *
 * The above copyright notice and this permission notice shall be included in
 * all copies or substantial portions of the Software.
 *
 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
 * IN THE SOFTWARE.
 *
 * omggif is a JavaScript implementation of a GIF 89a encoder and decoder,
 * including animation and compression.  It does not rely on any specific
 * underlying system, so should run in the browser, Node, or Plask.
 */
function aw(t) {
  var e = 0;
  if (t[e++] !== 71 || t[e++] !== 73 || t[e++] !== 70 || t[e++] !== 56 || (t[e++] + 1 & 253) != 56 || t[e++] !== 97) throw new Error("Invalid GIF 87a/89a header.");
  var A = t[e++] | t[e++] << 8, r = t[e++] | t[e++] << 8, n = t[e++], s = n >> 7, a = 1 << (7 & n) + 1;
  t[e++], t[e++];
  var o = null, c = null;
  s && (o = e, c = a, e += 3 * a);
  var d = !0, h = [], g = 0, w = null, p = 0, m = null;
  for (this.width = A, this.height = r; d && e < t.length; ) switch (t[e++]) {
    case 33:
      switch (t[e++]) {
        case 255:
          if (t[e] !== 11 || t[e + 1] == 78 && t[e + 2] == 69 && t[e + 3] == 84 && t[e + 4] == 83 && t[e + 5] == 67 && t[e + 6] == 65 && t[e + 7] == 80 && t[e + 8] == 69 && t[e + 9] == 50 && t[e + 10] == 46 && t[e + 11] == 48 && t[e + 12] == 3 && t[e + 13] == 1 && t[e + 16] == 0) e += 14, m = t[e++] | t[e++] << 8, e++;
          else for (e += 12; ; ) {
            if (!((I = t[e++]) >= 0)) throw Error("Invalid block size");
            if (I === 0) break;
            e += I;
          }
          break;
        case 249:
          if (t[e++] !== 4 || t[e + 4] !== 0) throw new Error("Invalid graphics extension block.");
          var F = t[e++];
          g = t[e++] | t[e++] << 8, w = t[e++], (1 & F) == 0 && (w = null), p = F >> 2 & 7, e++;
          break;
        case 254:
          for (; ; ) {
            if (!((I = t[e++]) >= 0)) throw Error("Invalid block size");
            if (I === 0) break;
            e += I;
          }
          break;
        default:
          throw new Error("Unknown graphic control label: 0x" + t[e - 1].toString(16));
      }
      break;
    case 44:
      var D = t[e++] | t[e++] << 8, v = t[e++] | t[e++] << 8, E = t[e++] | t[e++] << 8, P = t[e++] | t[e++] << 8, V = t[e++], J = V >> 6 & 1, Y = 1 << (7 & V) + 1, W = o, O = c, q = !1;
      V >> 7 && (q = !0, W = e, O = Y, e += 3 * Y);
      var lA = e;
      for (e++; ; ) {
        var I;
        if (!((I = t[e++]) >= 0)) throw Error("Invalid block size");
        if (I === 0) break;
        e += I;
      }
      h.push({ x: D, y: v, width: E, height: P, has_local_palette: q, palette_offset: W, palette_size: O, data_offset: lA, data_length: e - lA, transparent_index: w, interlaced: !!J, delay: g, disposal: p });
      break;
    case 59:
      d = !1;
      break;
    default:
      throw new Error("Unknown gif block: 0x" + t[e - 1].toString(16));
  }
  this.numFrames = function() {
    return h.length;
  }, this.loopCount = function() {
    return m;
  }, this.frameInfo = function(Q) {
    if (Q < 0 || Q >= h.length) throw new Error("Frame index out of range.");
    return h[Q];
  }, this.decodeAndBlitFrameBGRA = function(Q, k) {
    var U = this.frameInfo(Q), R = U.width * U.height, X = new Uint8Array(R);
    Uf(t, U.data_offset, X, R);
    var AA = U.palette_offset, z = U.transparent_index;
    z === null && (z = 256);
    var aA = U.width, rA = A - aA, QA = aA, b = 4 * (U.y * A + U.x), T = 4 * ((U.y + U.height) * A + U.x), _ = b, j = 4 * rA;
    U.interlaced === !0 && (j += 4 * A * 7);
    for (var $ = 8, uA = 0, hA = X.length; uA < hA; ++uA) {
      var mA = X[uA];
      if (QA === 0 && (QA = aA, (_ += j) >= T && (j = 4 * rA + 4 * A * ($ - 1), _ = b + (aA + rA) * ($ << 1), $ >>= 1)), mA === z) _ += 4;
      else {
        var jA = t[AA + 3 * mA], VA = t[AA + 3 * mA + 1], YA = t[AA + 3 * mA + 2];
        k[_++] = YA, k[_++] = VA, k[_++] = jA, k[_++] = 255;
      }
      --QA;
    }
  }, this.decodeAndBlitFrameRGBA = function(Q, k) {
    var U = this.frameInfo(Q), R = U.width * U.height, X = new Uint8Array(R);
    Uf(t, U.data_offset, X, R);
    var AA = U.palette_offset, z = U.transparent_index;
    z === null && (z = 256);
    var aA = U.width, rA = A - aA, QA = aA, b = 4 * (U.y * A + U.x), T = 4 * ((U.y + U.height) * A + U.x), _ = b, j = 4 * rA;
    U.interlaced === !0 && (j += 4 * A * 7);
    for (var $ = 8, uA = 0, hA = X.length; uA < hA; ++uA) {
      var mA = X[uA];
      if (QA === 0 && (QA = aA, (_ += j) >= T && (j = 4 * rA + 4 * A * ($ - 1), _ = b + (aA + rA) * ($ << 1), $ >>= 1)), mA === z) _ += 4;
      else {
        var jA = t[AA + 3 * mA], VA = t[AA + 3 * mA + 1], YA = t[AA + 3 * mA + 2];
        k[_++] = jA, k[_++] = VA, k[_++] = YA, k[_++] = 255;
      }
      --QA;
    }
  };
}
function Uf(t, e, A, r) {
  for (var n = t[e++], s = 1 << n, a = s + 1, o = a + 1, c = n + 1, d = (1 << c) - 1, h = 0, g = 0, w = 0, p = t[e++], m = new Int32Array(4096), F = null; ; ) {
    for (; h < 16 && p !== 0; ) g |= t[e++] << h, h += 8, p === 1 ? p = t[e++] : --p;
    if (h < c) break;
    var D = g & d;
    if (g >>= c, h -= c, D !== s) {
      if (D === a) break;
      for (var v = D < o ? D : F, E = 0, P = v; P > s; ) P = m[P] >> 8, ++E;
      var V = P;
      if (w + E + (v !== D ? 1 : 0) > r) return void ot.log("Warning, gif stream longer than expected.");
      A[w++] = V;
      var J = w += E;
      for (v !== D && (A[w++] = V), P = v; E--; ) P = m[P], A[--J] = 255 & P, P >>= 8;
      F !== null && o < 4096 && (m[o++] = F << 8 | V, o >= d + 1 && c < 12 && (++c, d = d << 1 | 1)), F = D;
    } else o = a + 1, d = (1 << (c = n + 1)) - 1, F = null;
  }
  return w !== r && ot.log("Warning, gif stream shorter than expected."), A;
}
/**
 * @license
  Copyright (c) 2008, Adobe Systems Incorporated
  All rights reserved.

  Redistribution and use in source and binary forms, with or without 
  modification, are permitted provided that the following conditions are
  met:

  * Redistributions of source code must retain the above copyright notice, 
    this list of conditions and the following disclaimer.
  
  * Redistributions in binary form must reproduce the above copyright
    notice, this list of conditions and the following disclaimer in the 
    documentation and/or other materials provided with the distribution.
  
  * Neither the name of Adobe Systems Incorporated nor the names of its 
    contributors may be used to endorse or promote products derived from 
    this software without specific prior written permission.

  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
  IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
  THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
  PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR 
  CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
  EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
  PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
  PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
  LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
  NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
  SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
function hc(t) {
  var e, A, r, n, s, a = Math.floor, o = new Array(64), c = new Array(64), d = new Array(64), h = new Array(64), g = new Array(65535), w = new Array(65535), p = new Array(64), m = new Array(64), F = [], D = 0, v = 7, E = new Array(64), P = new Array(64), V = new Array(64), J = new Array(256), Y = new Array(2048), W = [0, 1, 5, 6, 14, 15, 27, 28, 2, 4, 7, 13, 16, 26, 29, 42, 3, 8, 12, 17, 25, 30, 41, 43, 9, 11, 18, 24, 31, 40, 44, 53, 10, 19, 23, 32, 39, 45, 52, 54, 20, 22, 33, 38, 46, 51, 55, 60, 21, 34, 37, 47, 50, 56, 59, 61, 35, 36, 48, 49, 57, 58, 62, 63], O = [0, 0, 1, 5, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0], q = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11], lA = [0, 0, 2, 1, 3, 3, 2, 4, 3, 5, 5, 4, 4, 0, 0, 1, 125], I = [1, 2, 3, 0, 4, 17, 5, 18, 33, 49, 65, 6, 19, 81, 97, 7, 34, 113, 20, 50, 129, 145, 161, 8, 35, 66, 177, 193, 21, 82, 209, 240, 36, 51, 98, 114, 130, 9, 10, 22, 23, 24, 25, 26, 37, 38, 39, 40, 41, 42, 52, 53, 54, 55, 56, 57, 58, 67, 68, 69, 70, 71, 72, 73, 74, 83, 84, 85, 86, 87, 88, 89, 90, 99, 100, 101, 102, 103, 104, 105, 106, 115, 116, 117, 118, 119, 120, 121, 122, 131, 132, 133, 134, 135, 136, 137, 138, 146, 147, 148, 149, 150, 151, 152, 153, 154, 162, 163, 164, 165, 166, 167, 168, 169, 170, 178, 179, 180, 181, 182, 183, 184, 185, 186, 194, 195, 196, 197, 198, 199, 200, 201, 202, 210, 211, 212, 213, 214, 215, 216, 217, 218, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250], Q = [0, 0, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0], k = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11], U = [0, 0, 2, 1, 2, 4, 4, 3, 4, 7, 5, 4, 4, 0, 1, 2, 119], R = [0, 1, 2, 3, 17, 4, 5, 33, 49, 6, 18, 65, 81, 7, 97, 113, 19, 34, 50, 129, 8, 20, 66, 145, 161, 177, 193, 9, 35, 51, 82, 240, 21, 98, 114, 209, 10, 22, 36, 52, 225, 37, 241, 23, 24, 25, 26, 38, 39, 40, 41, 42, 53, 54, 55, 56, 57, 58, 67, 68, 69, 70, 71, 72, 73, 74, 83, 84, 85, 86, 87, 88, 89, 90, 99, 100, 101, 102, 103, 104, 105, 106, 115, 116, 117, 118, 119, 120, 121, 122, 130, 131, 132, 133, 134, 135, 136, 137, 138, 146, 147, 148, 149, 150, 151, 152, 153, 154, 162, 163, 164, 165, 166, 167, 168, 169, 170, 178, 179, 180, 181, 182, 183, 184, 185, 186, 194, 195, 196, 197, 198, 199, 200, 201, 202, 210, 211, 212, 213, 214, 215, 216, 217, 218, 226, 227, 228, 229, 230, 231, 232, 233, 234, 242, 243, 244, 245, 246, 247, 248, 249, 250];
  function X(b, T) {
    for (var _ = 0, j = 0, $ = new Array(), uA = 1; uA <= 16; uA++) {
      for (var hA = 1; hA <= b[uA]; hA++) $[T[j]] = [], $[T[j]][0] = _, $[T[j]][1] = uA, j++, _++;
      _ *= 2;
    }
    return $;
  }
  function AA(b) {
    for (var T = b[0], _ = b[1] - 1; _ >= 0; ) T & 1 << _ && (D |= 1 << v), _--, --v < 0 && (D == 255 ? (z(255), z(0)) : z(D), v = 7, D = 0);
  }
  function z(b) {
    F.push(b);
  }
  function aA(b) {
    z(b >> 8 & 255), z(255 & b);
  }
  function rA(b, T, _, j, $) {
    for (var uA, hA = $[0], mA = $[240], jA = function(cA, HA) {
      var XA, OA, ZA, sA, bA, PA, te, he, re, ce, RA = 0;
      for (re = 0; re < 8; ++re) {
        XA = cA[RA], OA = cA[RA + 1], ZA = cA[RA + 2], sA = cA[RA + 3], bA = cA[RA + 4], PA = cA[RA + 5], te = cA[RA + 6];
        var Pe = XA + (he = cA[RA + 7]), Ce = XA - he, tt = OA + te, Ue = OA - te, ke = ZA + PA, mt = ZA - PA, Se = sA + bA, xt = sA - bA, gA = Pe + Se, _A = Pe - Se, Ae = tt + ke, JA = tt - ke;
        cA[RA] = gA + Ae, cA[RA + 4] = gA - Ae;
        var LA = 0.707106781 * (JA + _A);
        cA[RA + 2] = _A + LA, cA[RA + 6] = _A - LA;
        var ae = 0.382683433 * ((gA = xt + mt) - (JA = Ue + Ce)), He = 0.5411961 * gA + ae, ve = 1.306562965 * JA + ae, $A = 0.707106781 * (Ae = mt + Ue), ee = Ce + $A, qA = Ce - $A;
        cA[RA + 5] = qA + He, cA[RA + 3] = qA - He, cA[RA + 1] = ee + ve, cA[RA + 7] = ee - ve, RA += 8;
      }
      for (RA = 0, re = 0; re < 8; ++re) {
        XA = cA[RA], OA = cA[RA + 8], ZA = cA[RA + 16], sA = cA[RA + 24], bA = cA[RA + 32], PA = cA[RA + 40], te = cA[RA + 48];
        var Ne = XA + (he = cA[RA + 56]), it = XA - he, ze = OA + te, qe = OA - te, rt = ZA + PA, _t = ZA - PA, Gr = sA + bA, lr = sA - bA, Xt = Ne + Gr, nr = Ne - Gr, Vt = ze + rt, cr = ze - rt;
        cA[RA] = Xt + Vt, cA[RA + 32] = Xt - Vt;
        var vA = 0.707106781 * (cr + nr);
        cA[RA + 16] = nr + vA, cA[RA + 48] = nr - vA;
        var xA = 0.382683433 * ((Xt = lr + _t) - (cr = qe + it)), dA = 0.5411961 * Xt + xA, zA = 1.306562965 * cr + xA, ne = 0.707106781 * (Vt = _t + qe), WA = it + ne, we = it - ne;
        cA[RA + 40] = we + dA, cA[RA + 24] = we - dA, cA[RA + 8] = WA + zA, cA[RA + 56] = WA - zA, RA++;
      }
      for (re = 0; re < 64; ++re) ce = cA[re] * HA[re], p[re] = ce > 0 ? ce + 0.5 | 0 : ce - 0.5 | 0;
      return p;
    }(b, T), VA = 0; VA < 64; ++VA) m[W[VA]] = jA[VA];
    var YA = m[0] - _;
    _ = m[0], YA == 0 ? AA(j[0]) : (AA(j[w[uA = 32767 + YA]]), AA(g[uA]));
    for (var nA = 63; nA > 0 && m[nA] == 0; ) nA--;
    if (nA == 0) return AA(hA), _;
    for (var UA, yA = 1; yA <= nA; ) {
      for (var G = yA; m[yA] == 0 && yA <= nA; ) ++yA;
      var CA = yA - G;
      if (CA >= 16) {
        UA = CA >> 4;
        for (var DA = 1; DA <= UA; ++DA) AA(mA);
        CA &= 15;
      }
      uA = 32767 + m[yA], AA($[(CA << 4) + w[uA]]), AA(g[uA]), yA++;
    }
    return nA != 63 && AA(hA), _;
  }
  function QA(b) {
    b = Math.min(Math.max(b, 1), 100), s != b && (function(T) {
      for (var _ = [16, 11, 10, 16, 24, 40, 51, 61, 12, 12, 14, 19, 26, 58, 60, 55, 14, 13, 16, 24, 40, 57, 69, 56, 14, 17, 22, 29, 51, 87, 80, 62, 18, 22, 37, 56, 68, 109, 103, 77, 24, 35, 55, 64, 81, 104, 113, 92, 49, 64, 78, 87, 103, 121, 120, 101, 72, 92, 95, 98, 112, 100, 103, 99], j = 0; j < 64; j++) {
        var $ = a((_[j] * T + 50) / 100);
        $ = Math.min(Math.max($, 1), 255), o[W[j]] = $;
      }
      for (var uA = [17, 18, 24, 47, 99, 99, 99, 99, 18, 21, 26, 66, 99, 99, 99, 99, 24, 26, 56, 99, 99, 99, 99, 99, 47, 66, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99], hA = 0; hA < 64; hA++) {
        var mA = a((uA[hA] * T + 50) / 100);
        mA = Math.min(Math.max(mA, 1), 255), c[W[hA]] = mA;
      }
      for (var jA = [1, 1.387039845, 1.306562965, 1.175875602, 1, 0.785694958, 0.5411961, 0.275899379], VA = 0, YA = 0; YA < 8; YA++) for (var nA = 0; nA < 8; nA++) d[VA] = 1 / (o[W[VA]] * jA[YA] * jA[nA] * 8), h[VA] = 1 / (c[W[VA]] * jA[YA] * jA[nA] * 8), VA++;
    }(b < 50 ? Math.floor(5e3 / b) : Math.floor(200 - 2 * b)), s = b);
  }
  this.encode = function(b, T) {
    T && QA(T), F = new Array(), D = 0, v = 7, aA(65496), aA(65504), aA(16), z(74), z(70), z(73), z(70), z(0), z(1), z(1), z(0), aA(1), aA(1), z(0), z(0), function() {
      aA(65499), aA(132), z(0);
      for (var OA = 0; OA < 64; OA++) z(o[OA]);
      z(1);
      for (var ZA = 0; ZA < 64; ZA++) z(c[ZA]);
    }(), function(OA, ZA) {
      aA(65472), aA(17), z(8), aA(ZA), aA(OA), z(3), z(1), z(17), z(0), z(2), z(17), z(1), z(3), z(17), z(1);
    }(b.width, b.height), function() {
      aA(65476), aA(418), z(0);
      for (var OA = 0; OA < 16; OA++) z(O[OA + 1]);
      for (var ZA = 0; ZA <= 11; ZA++) z(q[ZA]);
      z(16);
      for (var sA = 0; sA < 16; sA++) z(lA[sA + 1]);
      for (var bA = 0; bA <= 161; bA++) z(I[bA]);
      z(1);
      for (var PA = 0; PA < 16; PA++) z(Q[PA + 1]);
      for (var te = 0; te <= 11; te++) z(k[te]);
      z(17);
      for (var he = 0; he < 16; he++) z(U[he + 1]);
      for (var re = 0; re <= 161; re++) z(R[re]);
    }(), aA(65498), aA(12), z(3), z(1), z(0), z(2), z(17), z(3), z(17), z(0), z(63), z(0);
    var _ = 0, j = 0, $ = 0;
    D = 0, v = 7, this.encode.displayName = "_encode_";
    for (var uA, hA, mA, jA, VA, YA, nA, UA, yA, G = b.data, CA = b.width, DA = b.height, cA = 4 * CA, HA = 0; HA < DA; ) {
      for (uA = 0; uA < cA; ) {
        for (VA = cA * HA + uA, nA = -1, UA = 0, yA = 0; yA < 64; yA++) YA = VA + (UA = yA >> 3) * cA + (nA = 4 * (7 & yA)), HA + UA >= DA && (YA -= cA * (HA + 1 + UA - DA)), uA + nA >= cA && (YA -= uA + nA - cA + 4), hA = G[YA++], mA = G[YA++], jA = G[YA++], E[yA] = (Y[hA] + Y[mA + 256 >> 0] + Y[jA + 512 >> 0] >> 16) - 128, P[yA] = (Y[hA + 768 >> 0] + Y[mA + 1024 >> 0] + Y[jA + 1280 >> 0] >> 16) - 128, V[yA] = (Y[hA + 1280 >> 0] + Y[mA + 1536 >> 0] + Y[jA + 1792 >> 0] >> 16) - 128;
        _ = rA(E, d, _, e, r), j = rA(P, h, j, A, n), $ = rA(V, h, $, A, n), uA += 32;
      }
      HA += 8;
    }
    if (v >= 0) {
      var XA = [];
      XA[1] = v + 1, XA[0] = (1 << v + 1) - 1, AA(XA);
    }
    return aA(65497), new Uint8Array(F);
  }, t = t || 50, function() {
    for (var b = String.fromCharCode, T = 0; T < 256; T++) J[T] = b(T);
  }(), e = X(O, q), A = X(Q, k), r = X(lA, I), n = X(U, R), function() {
    for (var b = 1, T = 2, _ = 1; _ <= 15; _++) {
      for (var j = b; j < T; j++) w[32767 + j] = _, g[32767 + j] = [], g[32767 + j][1] = _, g[32767 + j][0] = j;
      for (var $ = -(T - 1); $ <= -b; $++) w[32767 + $] = _, g[32767 + $] = [], g[32767 + $][1] = _, g[32767 + $][0] = T - 1 + $;
      b <<= 1, T <<= 1;
    }
  }(), function() {
    for (var b = 0; b < 256; b++) Y[b] = 19595 * b, Y[b + 256 >> 0] = 38470 * b, Y[b + 512 >> 0] = 7471 * b + 32768, Y[b + 768 >> 0] = -11059 * b, Y[b + 1024 >> 0] = -21709 * b, Y[b + 1280 >> 0] = 32768 * b + 8421375, Y[b + 1536 >> 0] = -27439 * b, Y[b + 1792 >> 0] = -5329 * b;
  }(), QA(t);
}
/**
 * @license
 * Copyright (c) 2017 Aras Abbasi
 *
 * Licensed under the MIT License.
 * http://opensource.org/licenses/mit-license
 */
function Jr(t, e) {
  if (this.pos = 0, this.buffer = t, this.datav = new DataView(t.buffer), this.is_with_alpha = !!e, this.bottom_up = !0, this.flag = String.fromCharCode(this.buffer[0]) + String.fromCharCode(this.buffer[1]), this.pos += 2, ["BM", "BA", "CI", "CP", "IC", "PT"].indexOf(this.flag) === -1) throw new Error("Invalid BMP File");
  this.parseHeader(), this.parseBGR();
}
function Lf(t) {
  function e(O) {
    if (!O) throw Error("assert :P");
  }
  function A(O, q, lA) {
    for (var I = 0; 4 > I; I++) if (O[q + I] != lA.charCodeAt(I)) return !0;
    return !1;
  }
  function r(O, q, lA, I, Q) {
    for (var k = 0; k < Q; k++) O[q + k] = lA[I + k];
  }
  function n(O, q, lA, I) {
    for (var Q = 0; Q < I; Q++) O[q + Q] = lA;
  }
  function s(O) {
    return new Int32Array(O);
  }
  function a(O, q) {
    for (var lA = [], I = 0; I < O; I++) lA.push(new q());
    return lA;
  }
  function o(O, q) {
    var lA = [];
    return function I(Q, k, U) {
      for (var R = U[k], X = 0; X < R && (Q.push(U.length > k + 1 ? [] : new q()), !(U.length < k + 1)); X++) I(Q[X], k + 1, U);
    }(lA, 0, O), lA;
  }
  var c = function() {
    var O = this;
    function q(i, l) {
      for (var f = 1 << l - 1 >>> 0; i & f; ) f >>>= 1;
      return f ? (i & f - 1) + f : i;
    }
    function lA(i, l, f, B, y) {
      e(!(B % f));
      do
        i[l + (B -= f)] = y;
      while (0 < B);
    }
    function I(i, l, f, B, y) {
      if (e(2328 >= y), 512 >= y) var L = s(512);
      else if ((L = s(y)) == null) return 0;
      return function(x, S, H, M, eA, pA) {
        var BA, oA, MA = S, EA = 1 << H, tA = s(16), iA = s(16);
        for (e(eA != 0), e(M != null), e(x != null), e(0 < H), oA = 0; oA < eA; ++oA) {
          if (15 < M[oA]) return 0;
          ++tA[M[oA]];
        }
        if (tA[0] == eA) return 0;
        for (iA[1] = 0, BA = 1; 15 > BA; ++BA) {
          if (tA[BA] > 1 << BA) return 0;
          iA[BA + 1] = iA[BA] + tA[BA];
        }
        for (oA = 0; oA < eA; ++oA) BA = M[oA], 0 < M[oA] && (pA[iA[BA]++] = oA);
        if (iA[15] == 1) return (M = new Q()).g = 0, M.value = pA[0], lA(x, MA, 1, EA, M), EA;
        var TA, KA = -1, NA = EA - 1, ue = 0, se = 1, be = 1, ie = 1 << H;
        for (oA = 0, BA = 1, eA = 2; BA <= H; ++BA, eA <<= 1) {
          if (se += be <<= 1, 0 > (be -= tA[BA])) return 0;
          for (; 0 < tA[BA]; --tA[BA]) (M = new Q()).g = BA, M.value = pA[oA++], lA(x, MA + ue, eA, ie, M), ue = q(ue, BA);
        }
        for (BA = H + 1, eA = 2; 15 >= BA; ++BA, eA <<= 1) {
          if (se += be <<= 1, 0 > (be -= tA[BA])) return 0;
          for (; 0 < tA[BA]; --tA[BA]) {
            if (M = new Q(), (ue & NA) != KA) {
              for (MA += ie, TA = 1 << (KA = BA) - H; 15 > KA && !(0 >= (TA -= tA[KA])); ) ++KA, TA <<= 1;
              EA += ie = 1 << (TA = KA - H), x[S + (KA = ue & NA)].g = TA + H, x[S + KA].value = MA - S - KA;
            }
            M.g = BA - H, M.value = pA[oA++], lA(x, MA + (ue >> H), eA, ie, M), ue = q(ue, BA);
          }
        }
        return se != 2 * iA[15] - 1 ? 0 : EA;
      }(i, l, f, B, y, L);
    }
    function Q() {
      this.value = this.g = 0;
    }
    function k() {
      this.value = this.g = 0;
    }
    function U() {
      this.G = a(5, Q), this.H = s(5), this.jc = this.Qb = this.qb = this.nd = 0, this.pd = a(Gt, k);
    }
    function R(i, l, f, B) {
      e(i != null), e(l != null), e(2147483648 > B), i.Ca = 254, i.I = 0, i.b = -8, i.Ka = 0, i.oa = l, i.pa = f, i.Jd = l, i.Yc = f + B, i.Zc = 4 <= B ? f + B - 4 + 1 : f, uA(i);
    }
    function X(i, l) {
      for (var f = 0; 0 < l--; ) f |= mA(i, 128) << l;
      return f;
    }
    function AA(i, l) {
      var f = X(i, l);
      return hA(i) ? -f : f;
    }
    function z(i, l, f, B) {
      var y, L = 0;
      for (e(i != null), e(l != null), e(4294967288 > B), i.Sb = B, i.Ra = 0, i.u = 0, i.h = 0, 4 < B && (B = 4), y = 0; y < B; ++y) L += l[f + y] << 8 * y;
      i.Ra = L, i.bb = B, i.oa = l, i.pa = f;
    }
    function aA(i) {
      for (; 8 <= i.u && i.bb < i.Sb; ) i.Ra >>>= 8, i.Ra += i.oa[i.pa + i.bb] << Rs - 8 >>> 0, ++i.bb, i.u -= 8;
      _(i) && (i.h = 1, i.u = 0);
    }
    function rA(i, l) {
      if (e(0 <= l), !i.h && l <= Os) {
        var f = T(i) & Ps[l];
        return i.u += l, aA(i), f;
      }
      return i.h = 1, i.u = 0;
    }
    function QA() {
      this.b = this.Ca = this.I = 0, this.oa = [], this.pa = 0, this.Jd = [], this.Yc = 0, this.Zc = [], this.Ka = 0;
    }
    function b() {
      this.Ra = 0, this.oa = [], this.h = this.u = this.bb = this.Sb = this.pa = 0;
    }
    function T(i) {
      return i.Ra >>> (i.u & Rs - 1) >>> 0;
    }
    function _(i) {
      return e(i.bb <= i.Sb), i.h || i.bb == i.Sb && i.u > Rs;
    }
    function j(i, l) {
      i.u = l, i.h = _(i);
    }
    function $(i) {
      i.u >= _i && (e(i.u >= _i), aA(i));
    }
    function uA(i) {
      e(i != null && i.oa != null), i.pa < i.Zc ? (i.I = (i.oa[i.pa++] | i.I << 8) >>> 0, i.b += 8) : (e(i != null && i.oa != null), i.pa < i.Yc ? (i.b += 8, i.I = i.oa[i.pa++] | i.I << 8) : i.Ka ? i.b = 0 : (i.I <<= 8, i.b += 8, i.Ka = 1));
    }
    function hA(i) {
      return X(i, 1);
    }
    function mA(i, l) {
      var f = i.Ca;
      0 > i.b && uA(i);
      var B = i.b, y = f * l >>> 8, L = (i.I >>> B > y) + 0;
      for (L ? (f -= y, i.I -= y + 1 << B >>> 0) : f = y + 1, B = f, y = 0; 256 <= B; ) y += 8, B >>= 8;
      return B = 7 ^ y + fr[B], i.b -= B, i.Ca = (f << B) - 1, L;
    }
    function jA(i, l, f) {
      i[l + 0] = f >> 24 & 255, i[l + 1] = f >> 16 & 255, i[l + 2] = f >> 8 & 255, i[l + 3] = f >> 0 & 255;
    }
    function VA(i, l) {
      return i[l + 0] << 0 | i[l + 1] << 8;
    }
    function YA(i, l) {
      return VA(i, l) | i[l + 2] << 16;
    }
    function nA(i, l) {
      return VA(i, l) | VA(i, l + 2) << 16;
    }
    function UA(i, l) {
      var f = 1 << l;
      return e(i != null), e(0 < l), i.X = s(f), i.X == null ? 0 : (i.Mb = 32 - l, i.Xa = l, 1);
    }
    function yA(i, l) {
      e(i != null), e(l != null), e(i.Xa == l.Xa), r(l.X, 0, i.X, 0, 1 << l.Xa);
    }
    function G() {
      this.X = [], this.Xa = this.Mb = 0;
    }
    function CA(i, l, f, B) {
      e(f != null), e(B != null);
      var y = f[0], L = B[0];
      return y == 0 && (y = (i * L + l / 2) / l), L == 0 && (L = (l * y + i / 2) / i), 0 >= y || 0 >= L ? 0 : (f[0] = y, B[0] = L, 1);
    }
    function DA(i, l) {
      return i + (1 << l) - 1 >>> l;
    }
    function cA(i, l) {
      return ((4278255360 & i) + (4278255360 & l) >>> 0 & 4278255360) + ((16711935 & i) + (16711935 & l) >>> 0 & 16711935) >>> 0;
    }
    function HA(i, l) {
      O[l] = function(f, B, y, L, x, S, H) {
        var M;
        for (M = 0; M < x; ++M) {
          var eA = O[i](S[H + M - 1], y, L + M);
          S[H + M] = cA(f[B + M], eA);
        }
      };
    }
    function XA() {
      this.ud = this.hd = this.jd = 0;
    }
    function OA(i, l) {
      return ((4278124286 & (i ^ l)) >>> 1) + (i & l) >>> 0;
    }
    function ZA(i) {
      return 0 <= i && 256 > i ? i : 0 > i ? 0 : 255 < i ? 255 : void 0;
    }
    function sA(i, l) {
      return ZA(i + (i - l + 0.5 >> 1));
    }
    function bA(i, l, f) {
      return Math.abs(l - f) - Math.abs(i - f);
    }
    function PA(i, l, f, B, y, L, x) {
      for (B = L[x - 1], f = 0; f < y; ++f) L[x + f] = B = cA(i[l + f], B);
    }
    function te(i, l, f, B, y) {
      var L;
      for (L = 0; L < f; ++L) {
        var x = i[l + L], S = x >> 8 & 255, H = 16711935 & (H = (H = 16711935 & x) + ((S << 16) + S));
        B[y + L] = (4278255360 & x) + H >>> 0;
      }
    }
    function he(i, l) {
      l.jd = i >> 0 & 255, l.hd = i >> 8 & 255, l.ud = i >> 16 & 255;
    }
    function re(i, l, f, B, y, L) {
      var x;
      for (x = 0; x < B; ++x) {
        var S = l[f + x], H = S >>> 8, M = S, eA = 255 & (eA = (eA = S >>> 16) + ((i.jd << 24 >> 24) * (H << 24 >> 24) >>> 5));
        M = 255 & (M = (M = M + ((i.hd << 24 >> 24) * (H << 24 >> 24) >>> 5)) + ((i.ud << 24 >> 24) * (eA << 24 >> 24) >>> 5)), y[L + x] = (4278255360 & S) + (eA << 16) + M;
      }
    }
    function ce(i, l, f, B, y) {
      O[l] = function(L, x, S, H, M, eA, pA, BA, oA) {
        for (H = pA; H < BA; ++H) for (pA = 0; pA < oA; ++pA) M[eA++] = y(S[B(L[x++])]);
      }, O[i] = function(L, x, S, H, M, eA, pA) {
        var BA = 8 >> L.b, oA = L.Ea, MA = L.K[0], EA = L.w;
        if (8 > BA) for (L = (1 << L.b) - 1, EA = (1 << BA) - 1; x < S; ++x) {
          var tA, iA = 0;
          for (tA = 0; tA < oA; ++tA) tA & L || (iA = B(H[M++])), eA[pA++] = y(MA[iA & EA]), iA >>= BA;
        }
        else O["VP8LMapColor" + f](H, M, MA, EA, eA, pA, x, S, oA);
      };
    }
    function RA(i, l, f, B, y) {
      for (f = l + f; l < f; ) {
        var L = i[l++];
        B[y++] = L >> 16 & 255, B[y++] = L >> 8 & 255, B[y++] = L >> 0 & 255;
      }
    }
    function Pe(i, l, f, B, y) {
      for (f = l + f; l < f; ) {
        var L = i[l++];
        B[y++] = L >> 16 & 255, B[y++] = L >> 8 & 255, B[y++] = L >> 0 & 255, B[y++] = L >> 24 & 255;
      }
    }
    function Ce(i, l, f, B, y) {
      for (f = l + f; l < f; ) {
        var L = (x = i[l++]) >> 16 & 240 | x >> 12 & 15, x = x >> 0 & 240 | x >> 28 & 15;
        B[y++] = L, B[y++] = x;
      }
    }
    function tt(i, l, f, B, y) {
      for (f = l + f; l < f; ) {
        var L = (x = i[l++]) >> 16 & 248 | x >> 13 & 7, x = x >> 5 & 224 | x >> 3 & 31;
        B[y++] = L, B[y++] = x;
      }
    }
    function Ue(i, l, f, B, y) {
      for (f = l + f; l < f; ) {
        var L = i[l++];
        B[y++] = L >> 0 & 255, B[y++] = L >> 8 & 255, B[y++] = L >> 16 & 255;
      }
    }
    function ke(i, l, f, B, y, L) {
      if (L == 0) for (f = l + f; l < f; ) jA(B, ((L = i[l++])[0] >> 24 | L[1] >> 8 & 65280 | L[2] << 8 & 16711680 | L[3] << 24) >>> 0), y += 32;
      else r(B, y, i, l, f);
    }
    function mt(i, l) {
      O[l][0] = O[i + "0"], O[l][1] = O[i + "1"], O[l][2] = O[i + "2"], O[l][3] = O[i + "3"], O[l][4] = O[i + "4"], O[l][5] = O[i + "5"], O[l][6] = O[i + "6"], O[l][7] = O[i + "7"], O[l][8] = O[i + "8"], O[l][9] = O[i + "9"], O[l][10] = O[i + "10"], O[l][11] = O[i + "11"], O[l][12] = O[i + "12"], O[l][13] = O[i + "13"], O[l][14] = O[i + "0"], O[l][15] = O[i + "0"];
    }
    function Se(i) {
      return i == Vl || i == Gl || i == Xa || i == jl;
    }
    function xt() {
      this.eb = [], this.size = this.A = this.fb = 0;
    }
    function gA() {
      this.y = [], this.f = [], this.ea = [], this.F = [], this.Tc = this.Ed = this.Cd = this.Fd = this.lb = this.Db = this.Ab = this.fa = this.J = this.W = this.N = this.O = 0;
    }
    function _A() {
      this.Rd = this.height = this.width = this.S = 0, this.f = {}, this.f.RGBA = new xt(), this.f.kb = new gA(), this.sd = null;
    }
    function Ae() {
      this.width = [0], this.height = [0], this.Pd = [0], this.Qd = [0], this.format = [0];
    }
    function JA() {
      this.Id = this.fd = this.Md = this.hb = this.ib = this.da = this.bd = this.cd = this.j = this.v = this.Da = this.Sd = this.ob = 0;
    }
    function LA(i) {
      return alert("todo:WebPSamplerProcessPlane"), i.T;
    }
    function ae(i, l) {
      var f = i.T, B = l.ba.f.RGBA, y = B.eb, L = B.fb + i.ka * B.A, x = Mr[l.ba.S], S = i.y, H = i.O, M = i.f, eA = i.N, pA = i.ea, BA = i.W, oA = l.cc, MA = l.dc, EA = l.Mc, tA = l.Nc, iA = i.ka, TA = i.ka + i.T, KA = i.U, NA = KA + 1 >> 1;
      for (iA == 0 ? x(S, H, null, null, M, eA, pA, BA, M, eA, pA, BA, y, L, null, null, KA) : (x(l.ec, l.fc, S, H, oA, MA, EA, tA, M, eA, pA, BA, y, L - B.A, y, L, KA), ++f); iA + 2 < TA; iA += 2) oA = M, MA = eA, EA = pA, tA = BA, eA += i.Rc, BA += i.Rc, L += 2 * B.A, x(S, (H += 2 * i.fa) - i.fa, S, H, oA, MA, EA, tA, M, eA, pA, BA, y, L - B.A, y, L, KA);
      return H += i.fa, i.j + TA < i.o ? (r(l.ec, l.fc, S, H, KA), r(l.cc, l.dc, M, eA, NA), r(l.Mc, l.Nc, pA, BA, NA), f--) : 1 & TA || x(S, H, null, null, M, eA, pA, BA, M, eA, pA, BA, y, L + B.A, null, null, KA), f;
    }
    function He(i, l, f) {
      var B = i.F, y = [i.J];
      if (B != null) {
        var L = i.U, x = l.ba.S, S = x == Wa || x == Xa;
        l = l.ba.f.RGBA;
        var H = [0], M = i.ka;
        H[0] = i.T, i.Kb && (M == 0 ? --H[0] : (--M, y[0] -= i.width), i.j + i.ka + i.T == i.o && (H[0] = i.o - i.j - M));
        var eA = l.eb;
        M = l.fb + M * l.A, i = ct(B, y[0], i.width, L, H, eA, M + (S ? 0 : 3), l.A), e(f == H), i && Se(x) && Nr(eA, M, S, L, H, l.A);
      }
      return 0;
    }
    function ve(i) {
      var l = i.ma, f = l.ba.S, B = 11 > f, y = f == ja || f == qa || f == Wa || f == Kl || f == 12 || Se(f);
      if (l.memory = null, l.Ib = null, l.Jb = null, l.Nd = null, !Ti(l.Oa, i, y ? 11 : 12)) return 0;
      if (y && Se(f) && GA(), i.da) alert("todo:use_scaling");
      else {
        if (B) {
          if (l.Ib = LA, i.Kb) {
            if (f = i.U + 1 >> 1, l.memory = s(i.U + 2 * f), l.memory == null) return 0;
            l.ec = l.memory, l.fc = 0, l.cc = l.ec, l.dc = l.fc + i.U, l.Mc = l.cc, l.Nc = l.dc + f, l.Ib = ae, GA();
          }
        } else alert("todo:EmitYUV");
        y && (l.Jb = He, B && fA());
      }
      if (B && !Pu) {
        for (i = 0; 256 > i; ++i) yg[i] = 89858 * (i - 128) + Ya >> za, Fg[i] = -22014 * (i - 128) + Ya, bg[i] = -45773 * (i - 128), Cg[i] = 113618 * (i - 128) + Ya >> za;
        for (i = Gi; i < Xl; ++i) l = 76283 * (i - 16) + Ya >> za, Qg[i - Gi] = br(l, 255), Ug[i - Gi] = br(l + 8 >> 4, 15);
        Pu = 1;
      }
      return 1;
    }
    function $A(i) {
      var l = i.ma, f = i.U, B = i.T;
      return e(!(1 & i.ka)), 0 >= f || 0 >= B ? 0 : (f = l.Ib(i, l), l.Jb != null && l.Jb(i, l, f), l.Dc += f, 1);
    }
    function ee(i) {
      i.ma.memory = null;
    }
    function qA(i, l, f, B) {
      return rA(i, 8) != 47 ? 0 : (l[0] = rA(i, 14) + 1, f[0] = rA(i, 14) + 1, B[0] = rA(i, 1), rA(i, 3) != 0 ? 0 : !i.h);
    }
    function Ne(i, l) {
      if (4 > i) return i + 1;
      var f = i - 2 >> 1;
      return (2 + (1 & i) << f) + rA(l, f) + 1;
    }
    function it(i, l) {
      return 120 < l ? l - 120 : 1 <= (f = ((f = ag[l - 1]) >> 4) * i + (8 - (15 & f))) ? f : 1;
      var f;
    }
    function ze(i, l, f) {
      var B = T(f), y = i[l += 255 & B].g - 8;
      return 0 < y && (j(f, f.u + 8), B = T(f), l += i[l].value, l += B & (1 << y) - 1), j(f, f.u + i[l].g), i[l].value;
    }
    function qe(i, l, f) {
      return f.g += i.g, f.value += i.value << l >>> 0, e(8 >= f.g), i.g;
    }
    function rt(i, l, f) {
      var B = i.xc;
      return e((l = B == 0 ? 0 : i.vc[i.md * (f >> B) + (l >> B)]) < i.Wb), i.Ya[l];
    }
    function _t(i, l, f, B) {
      var y = i.ab, L = i.c * l, x = i.C;
      l = x + l;
      var S = f, H = B;
      for (B = i.Ta, f = i.Ua; 0 < y--; ) {
        var M = i.gc[y], eA = x, pA = l, BA = S, oA = H, MA = (H = B, S = f, M.Ea);
        switch (e(eA < pA), e(pA <= M.nc), M.hc) {
          case 2:
            Ma(BA, oA, (pA - eA) * MA, H, S);
            break;
          case 0:
            var EA = eA, tA = pA, iA = H, TA = S, KA = (ie = M).Ea;
            EA == 0 && (Ol(BA, oA, null, null, 1, iA, TA), PA(BA, oA + 1, 0, 0, KA - 1, iA, TA + 1), oA += KA, TA += KA, ++EA);
            for (var NA = 1 << ie.b, ue = NA - 1, se = DA(KA, ie.b), be = ie.K, ie = ie.w + (EA >> ie.b) * se; EA < tA; ) {
              var We = be, $e = ie, je = 1;
              for (Mi(BA, oA, iA, TA - KA, 1, iA, TA); je < KA; ) {
                var Oe = (je & ~ue) + NA;
                Oe > KA && (Oe = KA), (0, Hn[We[$e++] >> 8 & 15])(BA, oA + +je, iA, TA + je - KA, Oe - je, iA, TA + je), je = Oe;
              }
              oA += KA, TA += KA, ++EA & ue || (ie += se);
            }
            pA != M.nc && r(H, S - MA, H, S + (pA - eA - 1) * MA, MA);
            break;
          case 1:
            for (MA = BA, tA = oA, KA = (BA = M.Ea) - (TA = BA & ~(iA = (oA = 1 << M.b) - 1)), EA = DA(BA, M.b), NA = M.K, M = M.w + (eA >> M.b) * EA; eA < pA; ) {
              for (ue = NA, se = M, be = new XA(), ie = tA + TA, We = tA + BA; tA < ie; ) he(ue[se++], be), us(be, MA, tA, oA, H, S), tA += oA, S += oA;
              tA < We && (he(ue[se++], be), us(be, MA, tA, KA, H, S), tA += KA, S += KA), ++eA & iA || (M += EA);
            }
            break;
          case 3:
            if (BA == H && oA == S && 0 < M.b) {
              for (tA = H, BA = MA = S + (pA - eA) * MA - (TA = (pA - eA) * DA(M.Ea, M.b)), oA = H, iA = S, EA = [], TA = (KA = TA) - 1; 0 <= TA; --TA) EA[TA] = oA[iA + TA];
              for (TA = KA - 1; 0 <= TA; --TA) tA[BA + TA] = EA[TA];
              kr(M, eA, pA, H, MA, H, S);
            } else kr(M, eA, pA, BA, oA, H, S);
        }
        S = B, H = f;
      }
      H != f && r(B, f, S, H, L);
    }
    function Gr(i, l) {
      var f = i.V, B = i.Ba + i.c * i.C, y = l - i.C;
      if (e(l <= i.l.o), e(16 >= y), 0 < y) {
        var L = i.l, x = i.Ta, S = i.Ua, H = L.width;
        if (_t(i, y, f, B), y = S = [S], e((f = i.C) < (B = l)), e(L.v < L.va), B > L.o && (B = L.o), f < L.j) {
          var M = L.j - f;
          f = L.j, y[0] += M * H;
        }
        if (f >= B ? f = 0 : (y[0] += 4 * L.v, L.ka = f - L.j, L.U = L.va - L.v, L.T = B - f, f = 1), f) {
          if (S = S[0], 11 > (f = i.ca).S) {
            var eA = f.f.RGBA, pA = (B = f.S, y = L.U, L = L.T, M = eA.eb, eA.A), BA = L;
            for (eA = eA.fb + i.Ma * eA.A; 0 < BA--; ) {
              var oA = x, MA = S, EA = y, tA = M, iA = eA;
              switch (B) {
                case Ga:
                  dr(oA, MA, EA, tA, iA);
                  break;
                case ja:
                  sr(oA, MA, EA, tA, iA);
                  break;
                case Vl:
                  sr(oA, MA, EA, tA, iA), Nr(tA, iA, 0, EA, 1, 0);
                  break;
                case Iu:
                  wn(oA, MA, EA, tA, iA);
                  break;
                case qa:
                  ke(oA, MA, EA, tA, iA, 1);
                  break;
                case Gl:
                  ke(oA, MA, EA, tA, iA, 1), Nr(tA, iA, 0, EA, 1, 0);
                  break;
                case Wa:
                  ke(oA, MA, EA, tA, iA, 0);
                  break;
                case Xa:
                  ke(oA, MA, EA, tA, iA, 0), Nr(tA, iA, 1, EA, 1, 0);
                  break;
                case Kl:
                  Tn(oA, MA, EA, tA, iA);
                  break;
                case jl:
                  Tn(oA, MA, EA, tA, iA), lt(tA, iA, EA, 1, 0);
                  break;
                case Su:
                  Bn(oA, MA, EA, tA, iA);
                  break;
                default:
                  e(0);
              }
              S += H, eA += pA;
            }
            i.Ma += L;
          } else alert("todo:EmitRescaledRowsYUVA");
          e(i.Ma <= f.height);
        }
      }
      i.C = l, e(i.C <= i.i);
    }
    function lr(i) {
      var l;
      if (0 < i.ua) return 0;
      for (l = 0; l < i.Wb; ++l) {
        var f = i.Ya[l].G, B = i.Ya[l].H;
        if (0 < f[1][B[1] + 0].g || 0 < f[2][B[2] + 0].g || 0 < f[3][B[3] + 0].g) return 0;
      }
      return 1;
    }
    function Xt(i, l, f, B, y, L) {
      if (i.Z != 0) {
        var x = i.qd, S = i.rd;
        for (e(Pn[i.Z] != null); l < f; ++l) Pn[i.Z](x, S, B, y, B, y, L), x = B, S = y, y += L;
        i.qd = x, i.rd = S;
      }
    }
    function nr(i, l) {
      var f = i.l.ma, B = f.Z == 0 || f.Z == 1 ? i.l.j : i.C;
      if (B = i.C < B ? B : i.C, e(l <= i.l.o), l > B) {
        var y = i.l.width, L = f.ca, x = f.tb + y * B, S = i.V, H = i.Ba + i.c * B, M = i.gc;
        e(i.ab == 1), e(M[0].hc == 3), Pa(M[0], B, l, S, H, L, x), Xt(f, B, l, L, x, y);
      }
      i.C = i.Ma = l;
    }
    function Vt(i, l, f, B, y, L, x) {
      var S = i.$ / B, H = i.$ % B, M = i.m, eA = i.s, pA = f + i.$, BA = pA;
      y = f + B * y;
      var oA = f + B * L, MA = 280 + eA.ua, EA = i.Pb ? S : 16777216, tA = 0 < eA.ua ? eA.Wa : null, iA = eA.wc, TA = pA < oA ? rt(eA, H, S) : null;
      e(i.C < L), e(oA <= y);
      var KA = !1;
      A: for (; ; ) {
        for (; KA || pA < oA; ) {
          var NA = 0;
          if (S >= EA) {
            var ue = pA - f;
            e((EA = i).Pb), EA.wd = EA.m, EA.xd = ue, 0 < EA.s.ua && yA(EA.s.Wa, EA.s.vb), EA = S + lg;
          }
          if (H & iA || (TA = rt(eA, H, S)), e(TA != null), TA.Qb && (l[pA] = TA.qb, KA = !0), !KA) if ($(M), TA.jc) {
            NA = M, ue = l;
            var se = pA, be = TA.pd[T(NA) & Gt - 1];
            e(TA.jc), 256 > be.g ? (j(NA, NA.u + be.g), ue[se] = be.value, NA = 0) : (j(NA, NA.u + be.g - 256), e(256 <= be.value), NA = be.value), NA == 0 && (KA = !0);
          } else NA = ze(TA.G[0], TA.H[0], M);
          if (M.h) break;
          if (KA || 256 > NA) {
            if (!KA) if (TA.nd) l[pA] = (TA.qb | NA << 8) >>> 0;
            else {
              if ($(M), KA = ze(TA.G[1], TA.H[1], M), $(M), ue = ze(TA.G[2], TA.H[2], M), se = ze(TA.G[3], TA.H[3], M), M.h) break;
              l[pA] = (se << 24 | KA << 16 | NA << 8 | ue) >>> 0;
            }
            if (KA = !1, ++pA, ++H >= B && (H = 0, ++S, x != null && S <= L && !(S % 16) && x(i, S), tA != null)) for (; BA < pA; ) NA = l[BA++], tA.X[(506832829 * NA & 4294967295) >>> tA.Mb] = NA;
          } else if (280 > NA) {
            if (NA = Ne(NA - 256, M), ue = ze(TA.G[4], TA.H[4], M), $(M), ue = it(B, ue = Ne(ue, M)), M.h) break;
            if (pA - f < ue || y - pA < NA) break A;
            for (se = 0; se < NA; ++se) l[pA + se] = l[pA + se - ue];
            for (pA += NA, H += NA; H >= B; ) H -= B, ++S, x != null && S <= L && !(S % 16) && x(i, S);
            if (e(pA <= y), H & iA && (TA = rt(eA, H, S)), tA != null) for (; BA < pA; ) NA = l[BA++], tA.X[(506832829 * NA & 4294967295) >>> tA.Mb] = NA;
          } else {
            if (!(NA < MA)) break A;
            for (KA = NA - 280, e(tA != null); BA < pA; ) NA = l[BA++], tA.X[(506832829 * NA & 4294967295) >>> tA.Mb] = NA;
            NA = pA, e(!(KA >>> (ue = tA).Xa)), l[NA] = ue.X[KA], KA = !0;
          }
          KA || e(M.h == _(M));
        }
        if (i.Pb && M.h && pA < y) e(i.m.h), i.a = 5, i.m = i.wd, i.$ = i.xd, 0 < i.s.ua && yA(i.s.vb, i.s.Wa);
        else {
          if (M.h) break A;
          x != null && x(i, S > L ? L : S), i.a = 0, i.$ = pA - f;
        }
        return 1;
      }
      return i.a = 3, 0;
    }
    function cr(i) {
      e(i != null), i.vc = null, i.yc = null, i.Ya = null;
      var l = i.Wa;
      l != null && (l.X = null), i.vb = null, e(i != null);
    }
    function vA() {
      var i = new Pl();
      return i == null ? null : (i.a = 0, i.xb = Hu, mt("Predictor", "VP8LPredictors"), mt("Predictor", "VP8LPredictors_C"), mt("PredictorAdd", "VP8LPredictorsAdd"), mt("PredictorAdd", "VP8LPredictorsAdd_C"), Ma = te, us = re, dr = RA, sr = Pe, Tn = Ce, Bn = tt, wn = Ue, O.VP8LMapColor32b = Ks, O.VP8LMapColor8b = Oa, i);
    }
    function xA(i, l, f, B, y) {
      var L = 1, x = [i], S = [l], H = B.m, M = B.s, eA = null, pA = 0;
      A: for (; ; ) {
        if (f) for (; L && rA(H, 1); ) {
          var BA = x, oA = S, MA = B, EA = 1, tA = MA.m, iA = MA.gc[MA.ab], TA = rA(tA, 2);
          if (MA.Oc & 1 << TA) L = 0;
          else {
            switch (MA.Oc |= 1 << TA, iA.hc = TA, iA.Ea = BA[0], iA.nc = oA[0], iA.K = [null], ++MA.ab, e(4 >= MA.ab), TA) {
              case 0:
              case 1:
                iA.b = rA(tA, 3) + 2, EA = xA(DA(iA.Ea, iA.b), DA(iA.nc, iA.b), 0, MA, iA.K), iA.K = iA.K[0];
                break;
              case 3:
                var KA, NA = rA(tA, 8) + 1, ue = 16 < NA ? 0 : 4 < NA ? 1 : 2 < NA ? 2 : 3;
                if (BA[0] = DA(iA.Ea, ue), iA.b = ue, KA = EA = xA(NA, 1, 0, MA, iA.K)) {
                  var se, be = NA, ie = iA, We = 1 << (8 >> ie.b), $e = s(We);
                  if ($e == null) KA = 0;
                  else {
                    var je = ie.K[0], Oe = ie.w;
                    for ($e[0] = ie.K[0][0], se = 1; se < 1 * be; ++se) $e[se] = cA(je[Oe + se], $e[se - 1]);
                    for (; se < 4 * We; ++se) $e[se] = 0;
                    ie.K[0] = null, ie.K[0] = $e, KA = 1;
                  }
                }
                EA = KA;
                break;
              case 2:
                break;
              default:
                e(0);
            }
            L = EA;
          }
        }
        if (x = x[0], S = S[0], L && rA(H, 1) && !(L = 1 <= (pA = rA(H, 4)) && 11 >= pA)) {
          B.a = 3;
          break A;
        }
        var at;
        if (at = L) e: {
          var nt, De, St, hr = B, Dt = x, gr = S, Ze = pA, Qr = f, Ur = hr.m, Pt = hr.s, jt = [null], ar = 1, Pr = 0, an = og[Ze];
          t: for (; ; ) {
            if (Qr && rA(Ur, 1)) {
              var Ot = rA(Ur, 3) + 2, Cn = DA(Dt, Ot), ps = DA(gr, Ot), Ws = Cn * ps;
              if (!xA(Cn, ps, 0, hr, jt)) break t;
              for (jt = jt[0], Pt.xc = Ot, nt = 0; nt < Ws; ++nt) {
                var On = jt[nt] >> 8 & 65535;
                jt[nt] = On, On >= ar && (ar = On + 1);
              }
            }
            if (Ur.h) break t;
            for (De = 0; 5 > De; ++De) {
              var wt = Du[De];
              !De && 0 < Ze && (wt += 1 << Ze), Pr < wt && (Pr = wt);
            }
            var zl = a(ar * an, Q), Ku = ar, Vu = a(Ku, U);
            if (Vu == null) var $a = null;
            else e(65536 >= Ku), $a = Vu;
            var ji = s(Pr);
            if ($a == null || ji == null || zl == null) {
              hr.a = 1;
              break t;
            }
            var Za = zl;
            for (nt = St = 0; nt < ar; ++nt) {
              var zr = $a[nt], Xs = zr.G, zs = zr.H, Gu = 0, Ao = 1, ju = 0;
              for (De = 0; 5 > De; ++De) {
                wt = Du[De], Xs[De] = Za, zs[De] = St, !De && 0 < Ze && (wt += 1 << Ze);
                n: {
                  var eo, Yl = wt, to = hr, qi = ji, xg = Za, Ig = St, Jl = 0, Rn = to.m, Sg = rA(Rn, 1);
                  if (n(qi, 0, 0, Yl), Sg) {
                    var Dg = rA(Rn, 1) + 1, kg = rA(Rn, 1), qu = rA(Rn, kg == 0 ? 1 : 8);
                    qi[qu] = 1, Dg == 2 && (qi[qu = rA(Rn, 8)] = 1);
                    var ro = 1;
                  } else {
                    var Wu = s(19), Xu = rA(Rn, 4) + 4;
                    if (19 < Xu) {
                      to.a = 3;
                      var no = 0;
                      break n;
                    }
                    for (eo = 0; eo < Xu; ++eo) Wu[ig[eo]] = rA(Rn, 3);
                    var $l = void 0, Wi = void 0, zu = to, Hg = Wu, so = Yl, Yu = qi, Zl = 0, Kn = zu.m, Ju = 8, $u = a(128, Q);
                    r: for (; I($u, 0, 7, Hg, 19); ) {
                      if (rA(Kn, 1)) {
                        var Tg = 2 + 2 * rA(Kn, 3);
                        if (($l = 2 + rA(Kn, Tg)) > so) break r;
                      } else $l = so;
                      for (Wi = 0; Wi < so && $l--; ) {
                        $(Kn);
                        var Zu = $u[0 + (127 & T(Kn))];
                        j(Kn, Kn.u + Zu.g);
                        var Ys = Zu.value;
                        if (16 > Ys) Yu[Wi++] = Ys, Ys != 0 && (Ju = Ys);
                        else {
                          var Ng = Ys == 16, Af = Ys - 16, _g = ng[Af], ef = rA(Kn, rg[Af]) + _g;
                          if (Wi + ef > so) break r;
                          for (var Mg = Ng ? Ju : 0; 0 < ef--; ) Yu[Wi++] = Mg;
                        }
                      }
                      Zl = 1;
                      break r;
                    }
                    Zl || (zu.a = 3), ro = Zl;
                  }
                  (ro = ro && !Rn.h) && (Jl = I(xg, Ig, 8, qi, Yl)), ro && Jl != 0 ? no = Jl : (to.a = 3, no = 0);
                }
                if (no == 0) break t;
                if (Ao && sg[De] == 1 && (Ao = Za[St].g == 0), Gu += Za[St].g, St += no, 3 >= De) {
                  var Xi, Ac = ji[0];
                  for (Xi = 1; Xi < wt; ++Xi) ji[Xi] > Ac && (Ac = ji[Xi]);
                  ju += Ac;
                }
              }
              if (zr.nd = Ao, zr.Qb = 0, Ao && (zr.qb = (Xs[3][zs[3] + 0].value << 24 | Xs[1][zs[1] + 0].value << 16 | Xs[2][zs[2] + 0].value) >>> 0, Gu == 0 && 256 > Xs[0][zs[0] + 0].value && (zr.Qb = 1, zr.qb += Xs[0][zs[0] + 0].value << 8)), zr.jc = !zr.Qb && 6 > ju, zr.jc) {
                var io, bn = zr;
                for (io = 0; io < Gt; ++io) {
                  var Vn = io, Gn = bn.pd[Vn], ao = bn.G[0][bn.H[0] + Vn];
                  256 <= ao.value ? (Gn.g = ao.g + 256, Gn.value = ao.value) : (Gn.g = 0, Gn.value = 0, Vn >>= qe(ao, 8, Gn), Vn >>= qe(bn.G[1][bn.H[1] + Vn], 16, Gn), Vn >>= qe(bn.G[2][bn.H[2] + Vn], 0, Gn), qe(bn.G[3][bn.H[3] + Vn], 24, Gn));
                }
              }
            }
            Pt.vc = jt, Pt.Wb = ar, Pt.Ya = $a, Pt.yc = zl, at = 1;
            break e;
          }
          at = 0;
        }
        if (!(L = at)) {
          B.a = 3;
          break A;
        }
        if (0 < pA) {
          if (M.ua = 1 << pA, !UA(M.Wa, pA)) {
            B.a = 1, L = 0;
            break A;
          }
        } else M.ua = 0;
        var ec = B, tf = x, Pg = S, tc = ec.s, rc = tc.xc;
        if (ec.c = tf, ec.i = Pg, tc.md = DA(tf, rc), tc.wc = rc == 0 ? -1 : (1 << rc) - 1, f) {
          B.xb = pg;
          break A;
        }
        if ((eA = s(x * S)) == null) {
          B.a = 1, L = 0;
          break A;
        }
        L = (L = Vt(B, eA, 0, x, S, S, null)) && !H.h;
        break A;
      }
      return L ? (y != null ? y[0] = eA : (e(eA == null), e(f)), B.$ = 0, f || cr(M)) : cr(M), L;
    }
    function dA(i, l) {
      var f = i.c * i.i, B = f + l + 16 * l;
      return e(i.c <= l), i.V = s(B), i.V == null ? (i.Ta = null, i.Ua = 0, i.a = 1, 0) : (i.Ta = i.V, i.Ua = i.Ba + f + l, 1);
    }
    function zA(i, l) {
      var f = i.C, B = l - f, y = i.V, L = i.Ba + i.c * f;
      for (e(l <= i.l.o); 0 < B; ) {
        var x = 16 < B ? 16 : B, S = i.l.ma, H = i.l.width, M = H * x, eA = S.ca, pA = S.tb + H * f, BA = i.Ta, oA = i.Ua;
        _t(i, x, y, L), bt(BA, oA, eA, pA, M), Xt(S, f, f + x, eA, pA, H), B -= x, y += x * i.c, f += x;
      }
      e(f == l), i.C = i.Ma = l;
    }
    function ne() {
      this.ub = this.yd = this.td = this.Rb = 0;
    }
    function WA() {
      this.Kd = this.Ld = this.Ud = this.Td = this.i = this.c = 0;
    }
    function we() {
      this.Fb = this.Bb = this.Cb = 0, this.Zb = s(4), this.Lb = s(4);
    }
    function _e() {
      this.Yb = function() {
        var i = [];
        return function l(f, B, y) {
          for (var L = y[B], x = 0; x < L && (f.push(y.length > B + 1 ? [] : 0), !(y.length < B + 1)); x++) l(f[x], B + 1, y);
        }(i, 0, [3, 11]), i;
      }();
    }
    function me() {
      this.jb = s(3), this.Wc = o([4, 8], _e), this.Xc = o([4, 17], _e);
    }
    function Te() {
      this.Pc = this.wb = this.Tb = this.zd = 0, this.vd = new s(4), this.od = new s(4);
    }
    function Ke() {
      this.ld = this.La = this.dd = this.tc = 0;
    }
    function Cr() {
      this.Na = this.la = 0;
    }
    function vi() {
      this.Sc = [0, 0], this.Eb = [0, 0], this.Qc = [0, 0], this.ia = this.lc = 0;
    }
    function is() {
      this.ad = s(384), this.Za = 0, this.Ob = s(16), this.$b = this.Ad = this.ia = this.Gc = this.Hc = this.Dd = 0;
    }
    function ma() {
      this.uc = this.M = this.Nb = 0, this.wa = Array(new Ke()), this.Y = 0, this.ya = Array(new is()), this.aa = 0, this.l = new Es();
    }
    function Ls() {
      this.y = s(16), this.f = s(8), this.ea = s(8);
    }
    function ml() {
      this.cb = this.a = 0, this.sc = "", this.m = new QA(), this.Od = new ne(), this.Kc = new WA(), this.ed = new Te(), this.Qa = new we(), this.Ic = this.$c = this.Aa = 0, this.D = new ma(), this.Xb = this.Va = this.Hb = this.zb = this.yb = this.Ub = this.za = 0, this.Jc = a(8, QA), this.ia = 0, this.pb = a(4, vi), this.Pa = new me(), this.Bd = this.kc = 0, this.Ac = [], this.Bc = 0, this.zc = [0, 0, 0, 0], this.Gd = Array(new Ls()), this.Hd = 0, this.rb = Array(new Cr()), this.sb = 0, this.wa = Array(new Ke()), this.Y = 0, this.oc = [], this.pc = 0, this.sa = [], this.ta = 0, this.qa = [], this.ra = 0, this.Ha = [], this.B = this.R = this.Ia = 0, this.Ec = [], this.M = this.ja = this.Vb = this.Fc = 0, this.ya = Array(new is()), this.L = this.aa = 0, this.gd = o([4, 2], Ke), this.ga = null, this.Fa = [], this.Cc = this.qc = this.P = 0, this.Gb = [], this.Uc = 0, this.mb = [], this.nb = 0, this.rc = [], this.Ga = this.Vc = 0;
    }
    function Es() {
      this.T = this.U = this.ka = this.height = this.width = 0, this.y = [], this.f = [], this.ea = [], this.Rc = this.fa = this.W = this.N = this.O = 0, this.ma = "void", this.put = "VP8IoPutHook", this.ac = "VP8IoSetupHook", this.bc = "VP8IoTeardownHook", this.ha = this.Kb = 0, this.data = [], this.hb = this.ib = this.da = this.o = this.j = this.va = this.v = this.Da = this.ob = this.w = 0, this.F = [], this.J = 0;
    }
    function yl() {
      var i = new ml();
      return i != null && (i.a = 0, i.sc = "OK", i.cb = 0, i.Xb = 0, Vi || (Vi = ba)), i;
    }
    function yt(i, l, f) {
      return i.a == 0 && (i.a = l, i.sc = f, i.cb = 0), 0;
    }
    function ya(i, l, f) {
      return 3 <= f && i[l + 0] == 157 && i[l + 1] == 1 && i[l + 2] == 42;
    }
    function Ca(i, l) {
      if (i == null) return 0;
      if (i.a = 0, i.sc = "OK", l == null) return yt(i, 2, "null VP8Io passed to VP8GetHeaders()");
      var f = l.data, B = l.w, y = l.ha;
      if (4 > y) return yt(i, 7, "Truncated header.");
      var L = f[B + 0] | f[B + 1] << 8 | f[B + 2] << 16, x = i.Od;
      if (x.Rb = !(1 & L), x.td = L >> 1 & 7, x.yd = L >> 4 & 1, x.ub = L >> 5, 3 < x.td) return yt(i, 3, "Incorrect keyframe parameters.");
      if (!x.yd) return yt(i, 4, "Frame not displayable.");
      B += 3, y -= 3;
      var S = i.Kc;
      if (x.Rb) {
        if (7 > y) return yt(i, 7, "cannot parse picture header");
        if (!ya(f, B, y)) return yt(i, 3, "Bad code word");
        S.c = 16383 & (f[B + 4] << 8 | f[B + 3]), S.Td = f[B + 4] >> 6, S.i = 16383 & (f[B + 6] << 8 | f[B + 5]), S.Ud = f[B + 6] >> 6, B += 7, y -= 7, i.za = S.c + 15 >> 4, i.Ub = S.i + 15 >> 4, l.width = S.c, l.height = S.i, l.Da = 0, l.j = 0, l.v = 0, l.va = l.width, l.o = l.height, l.da = 0, l.ib = l.width, l.hb = l.height, l.U = l.width, l.T = l.height, n((L = i.Pa).jb, 0, 255, L.jb.length), e((L = i.Qa) != null), L.Cb = 0, L.Bb = 0, L.Fb = 1, n(L.Zb, 0, 0, L.Zb.length), n(L.Lb, 0, 0, L.Lb);
      }
      if (x.ub > y) return yt(i, 7, "bad partition length");
      R(L = i.m, f, B, x.ub), B += x.ub, y -= x.ub, x.Rb && (S.Ld = hA(L), S.Kd = hA(L)), S = i.Qa;
      var H, M = i.Pa;
      if (e(L != null), e(S != null), S.Cb = hA(L), S.Cb) {
        if (S.Bb = hA(L), hA(L)) {
          for (S.Fb = hA(L), H = 0; 4 > H; ++H) S.Zb[H] = hA(L) ? AA(L, 7) : 0;
          for (H = 0; 4 > H; ++H) S.Lb[H] = hA(L) ? AA(L, 6) : 0;
        }
        if (S.Bb) for (H = 0; 3 > H; ++H) M.jb[H] = hA(L) ? X(L, 8) : 255;
      } else S.Bb = 0;
      if (L.Ka) return yt(i, 3, "cannot parse segment header");
      if ((S = i.ed).zd = hA(L), S.Tb = X(L, 6), S.wb = X(L, 3), S.Pc = hA(L), S.Pc && hA(L)) {
        for (M = 0; 4 > M; ++M) hA(L) && (S.vd[M] = AA(L, 6));
        for (M = 0; 4 > M; ++M) hA(L) && (S.od[M] = AA(L, 6));
      }
      if (i.L = S.Tb == 0 ? 0 : S.zd ? 1 : 2, L.Ka) return yt(i, 3, "cannot parse filter header");
      var eA = y;
      if (y = H = B, B = H + eA, S = eA, i.Xb = (1 << X(i.m, 2)) - 1, eA < 3 * (M = i.Xb)) f = 7;
      else {
        for (H += 3 * M, S -= 3 * M, eA = 0; eA < M; ++eA) {
          var pA = f[y + 0] | f[y + 1] << 8 | f[y + 2] << 16;
          pA > S && (pA = S), R(i.Jc[+eA], f, H, pA), H += pA, S -= pA, y += 3;
        }
        R(i.Jc[+M], f, H, S), f = H < B ? 0 : 5;
      }
      if (f != 0) return yt(i, f, "cannot parse partitions");
      for (f = X(H = i.m, 7), y = hA(H) ? AA(H, 4) : 0, B = hA(H) ? AA(H, 4) : 0, S = hA(H) ? AA(H, 4) : 0, M = hA(H) ? AA(H, 4) : 0, H = hA(H) ? AA(H, 4) : 0, eA = i.Qa, pA = 0; 4 > pA; ++pA) {
        if (eA.Cb) {
          var BA = eA.Zb[pA];
          eA.Fb || (BA += f);
        } else {
          if (0 < pA) {
            i.pb[pA] = i.pb[0];
            continue;
          }
          BA = f;
        }
        var oA = i.pb[pA];
        oA.Sc[0] = ql[br(BA + y, 127)], oA.Sc[1] = Wl[br(BA + 0, 127)], oA.Eb[0] = 2 * ql[br(BA + B, 127)], oA.Eb[1] = 101581 * Wl[br(BA + S, 127)] >> 16, 8 > oA.Eb[1] && (oA.Eb[1] = 8), oA.Qc[0] = ql[br(BA + M, 117)], oA.Qc[1] = Wl[br(BA + H, 127)], oA.lc = BA + H;
      }
      if (!x.Rb) return yt(i, 4, "Not a key frame.");
      for (hA(L), x = i.Pa, f = 0; 4 > f; ++f) {
        for (y = 0; 8 > y; ++y) for (B = 0; 3 > B; ++B) for (S = 0; 11 > S; ++S) M = mA(L, hg[f][y][B][S]) ? X(L, 8) : fg[f][y][B][S], x.Wc[f][y].Yb[B][S] = M;
        for (y = 0; 17 > y; ++y) x.Xc[f][y] = x.Wc[f][gg[y]];
      }
      return i.kc = hA(L), i.kc && (i.Bd = X(L, 8)), i.cb = 1;
    }
    function ba(i, l, f, B, y, L, x) {
      var S = l[y].Yb[f];
      for (f = 0; 16 > y; ++y) {
        if (!mA(i, S[f + 0])) return y;
        for (; !mA(i, S[f + 1]); ) if (S = l[++y].Yb[0], f = 0, y == 16) return 16;
        var H = l[y + 1].Yb;
        if (mA(i, S[f + 2])) {
          var M = i, eA = 0;
          if (mA(M, (BA = S)[(pA = f) + 3])) if (mA(M, BA[pA + 6])) {
            for (S = 0, pA = 2 * (eA = mA(M, BA[pA + 8])) + (BA = mA(M, BA[pA + 9 + eA])), eA = 0, BA = cg[pA]; BA[S]; ++S) eA += eA + mA(M, BA[S]);
            eA += 3 + (8 << pA);
          } else mA(M, BA[pA + 7]) ? (eA = 7 + 2 * mA(M, 165), eA += mA(M, 145)) : eA = 5 + mA(M, 159);
          else eA = mA(M, BA[pA + 4]) ? 3 + mA(M, BA[pA + 5]) : 2;
          S = H[2];
        } else eA = 1, S = H[1];
        H = x + ug[y], 0 > (M = i).b && uA(M);
        var pA, BA = M.b, oA = (pA = M.Ca >> 1) - (M.I >> BA) >> 31;
        --M.b, M.Ca += oA, M.Ca |= 1, M.I -= (pA + 1 & oA) << BA, L[H] = ((eA ^ oA) - oA) * B[(0 < y) + 0];
      }
      return 16;
    }
    function mi(i) {
      var l = i.rb[i.sb - 1];
      l.la = 0, l.Na = 0, n(i.zc, 0, 0, i.zc.length), i.ja = 0;
    }
    function Cl(i, l) {
      if (i == null) return 0;
      if (l == null) return yt(i, 2, "NULL VP8Io parameter in VP8Decode().");
      if (!i.cb && !Ca(i, l)) return 0;
      if (e(i.cb), l.ac == null || l.ac(l)) {
        l.ob && (i.L = 0);
        var f = Ja[i.L];
        if (i.L == 2 ? (i.yb = 0, i.zb = 0) : (i.yb = l.v - f >> 4, i.zb = l.j - f >> 4, 0 > i.yb && (i.yb = 0), 0 > i.zb && (i.zb = 0)), i.Va = l.o + 15 + f >> 4, i.Hb = l.va + 15 + f >> 4, i.Hb > i.za && (i.Hb = i.za), i.Va > i.Ub && (i.Va = i.Ub), 0 < i.L) {
          var B = i.ed;
          for (f = 0; 4 > f; ++f) {
            var y;
            if (i.Qa.Cb) {
              var L = i.Qa.Lb[f];
              i.Qa.Fb || (L += B.Tb);
            } else L = B.Tb;
            for (y = 0; 1 >= y; ++y) {
              var x = i.gd[f][y], S = L;
              if (B.Pc && (S += B.vd[0], y && (S += B.od[0])), 0 < (S = 0 > S ? 0 : 63 < S ? 63 : S)) {
                var H = S;
                0 < B.wb && (H = 4 < B.wb ? H >> 2 : H >> 1) > 9 - B.wb && (H = 9 - B.wb), 1 > H && (H = 1), x.dd = H, x.tc = 2 * S + H, x.ld = 40 <= S ? 2 : 15 <= S ? 1 : 0;
              } else x.tc = 0;
              x.La = y;
            }
          }
        }
        f = 0;
      } else yt(i, 6, "Frame setup failed"), f = i.a;
      if (f = f == 0) {
        if (f) {
          i.$c = 0, 0 < i.Aa || (i.Ic = Eg);
          A: {
            f = i.Ic, B = 4 * (H = i.za);
            var M = 32 * H, eA = H + 1, pA = 0 < i.L ? H * (0 < i.Aa ? 2 : 1) : 0, BA = (i.Aa == 2 ? 2 : 1) * H;
            if ((x = B + 832 + (y = 3 * (16 * f + Ja[i.L]) / 2 * M) + (L = i.Fa != null && 0 < i.Fa.length ? i.Kc.c * i.Kc.i : 0)) != x) f = 0;
            else {
              if (x > i.Vb) {
                if (i.Vb = 0, i.Ec = s(x), i.Fc = 0, i.Ec == null) {
                  f = yt(i, 1, "no memory during frame initialization.");
                  break A;
                }
                i.Vb = x;
              }
              x = i.Ec, S = i.Fc, i.Ac = x, i.Bc = S, S += B, i.Gd = a(M, Ls), i.Hd = 0, i.rb = a(eA + 1, Cr), i.sb = 1, i.wa = pA ? a(pA, Ke) : null, i.Y = 0, i.D.Nb = 0, i.D.wa = i.wa, i.D.Y = i.Y, 0 < i.Aa && (i.D.Y += H), e(!0), i.oc = x, i.pc = S, S += 832, i.ya = a(BA, is), i.aa = 0, i.D.ya = i.ya, i.D.aa = i.aa, i.Aa == 2 && (i.D.aa += H), i.R = 16 * H, i.B = 8 * H, H = (M = Ja[i.L]) * i.R, M = M / 2 * i.B, i.sa = x, i.ta = S + H, i.qa = i.sa, i.ra = i.ta + 16 * f * i.R + M, i.Ha = i.qa, i.Ia = i.ra + 8 * f * i.B + M, i.$c = 0, S += y, i.mb = L ? x : null, i.nb = L ? S : null, e(S + L <= i.Fc + i.Vb), mi(i), n(i.Ac, i.Bc, 0, B), f = 1;
            }
          }
          if (f) {
            if (l.ka = 0, l.y = i.sa, l.O = i.ta, l.f = i.qa, l.N = i.ra, l.ea = i.Ha, l.Vd = i.Ia, l.fa = i.R, l.Rc = i.B, l.F = null, l.J = 0, !Ka) {
              for (f = -255; 255 >= f; ++f) Ht[255 + f] = 0 > f ? -f : f;
              for (f = -1020; 1020 >= f; ++f) mn[1020 + f] = -128 > f ? -128 : 127 < f ? 127 : f;
              for (f = -112; 112 >= f; ++f) Ki[112 + f] = -16 > f ? -16 : 15 < f ? 15 : f;
              for (f = -255; 510 >= f; ++f) qs[255 + f] = 0 > f ? 0 : 255 < f ? 255 : f;
              Ka = 1;
            }
            Vs = Ql, vn = bl, Pi = Qa, ir = Fl, Hr = Ua, Ct = Fa, Gs = Ui, Ra = ls, Oi = Ml, fs = Li, ds = _l, Nn = Hs, hs = Ei, js = Ta, gs = Ha, _n = nn, Ri = pn, Tr = Nl, Xr[0] = rn, Xr[1] = Ul, Xr[2] = Il, Xr[3] = Sl, Xr[4] = xa, Xr[5] = Ds, Xr[6] = Ia, Xr[7] = bi, Xr[8] = kl, Xr[9] = Dl, Mn[0] = La, Mn[1] = El, Mn[2] = gn, Mn[3] = Is, Mn[4] = zt, Mn[5] = xl, Mn[6] = Ea, yn[0] = Sn, yn[1] = Ll, yn[2] = Hl, yn[3] = Fi, yn[4] = os, yn[5] = Tl, yn[6] = Qi, f = 1;
          } else f = 0;
        }
        f && (f = function(oA, MA) {
          for (oA.M = 0; oA.M < oA.Va; ++oA.M) {
            var EA, tA = oA.Jc[oA.M & oA.Xb], iA = oA.m, TA = oA;
            for (EA = 0; EA < TA.za; ++EA) {
              var KA = iA, NA = TA, ue = NA.Ac, se = NA.Bc + 4 * EA, be = NA.zc, ie = NA.ya[NA.aa + EA];
              if (NA.Qa.Bb ? ie.$b = mA(KA, NA.Pa.jb[0]) ? 2 + mA(KA, NA.Pa.jb[2]) : mA(KA, NA.Pa.jb[1]) : ie.$b = 0, NA.kc && (ie.Ad = mA(KA, NA.Bd)), ie.Za = !mA(KA, 145) + 0, ie.Za) {
                var We = ie.Ob, $e = 0;
                for (NA = 0; 4 > NA; ++NA) {
                  var je, Oe = be[0 + NA];
                  for (je = 0; 4 > je; ++je) {
                    Oe = dg[ue[se + je]][Oe];
                    for (var at = ku[mA(KA, Oe[0])]; 0 < at; ) at = ku[2 * at + mA(KA, Oe[at])];
                    Oe = -at, ue[se + je] = Oe;
                  }
                  r(We, $e, ue, se, 4), $e += 4, be[0 + NA] = Oe;
                }
              } else Oe = mA(KA, 156) ? mA(KA, 128) ? 1 : 3 : mA(KA, 163) ? 2 : 0, ie.Ob[0] = Oe, n(ue, se, Oe, 4), n(be, 0, Oe, 4);
              ie.Dd = mA(KA, 142) ? mA(KA, 114) ? mA(KA, 183) ? 1 : 3 : 2 : 0;
            }
            if (TA.m.Ka) return yt(oA, 7, "Premature end-of-partition0 encountered.");
            for (; oA.ja < oA.za; ++oA.ja) {
              if (TA = tA, KA = (iA = oA).rb[iA.sb - 1], ue = iA.rb[iA.sb + iA.ja], EA = iA.ya[iA.aa + iA.ja], se = iA.kc ? EA.Ad : 0) KA.la = ue.la = 0, EA.Za || (KA.Na = ue.Na = 0), EA.Hc = 0, EA.Gc = 0, EA.ia = 0;
              else {
                var nt, De;
                if (KA = ue, ue = TA, se = iA.Pa.Xc, be = iA.ya[iA.aa + iA.ja], ie = iA.pb[be.$b], NA = be.ad, We = 0, $e = iA.rb[iA.sb - 1], Oe = je = 0, n(NA, We, 0, 384), be.Za) var St = 0, hr = se[3];
                else {
                  at = s(16);
                  var Dt = KA.Na + $e.Na;
                  if (Dt = Vi(ue, se[1], Dt, ie.Eb, 0, at, 0), KA.Na = $e.Na = (0 < Dt) + 0, 1 < Dt) Vs(at, 0, NA, We);
                  else {
                    var gr = at[0] + 3 >> 3;
                    for (at = 0; 256 > at; at += 16) NA[We + at] = gr;
                  }
                  St = 1, hr = se[0];
                }
                var Ze = 15 & KA.la, Qr = 15 & $e.la;
                for (at = 0; 4 > at; ++at) {
                  var Ur = 1 & Qr;
                  for (gr = De = 0; 4 > gr; ++gr) Ze = Ze >> 1 | (Ur = (Dt = Vi(ue, hr, Dt = Ur + (1 & Ze), ie.Sc, St, NA, We)) > St) << 7, De = De << 2 | (3 < Dt ? 3 : 1 < Dt ? 2 : NA[We + 0] != 0), We += 16;
                  Ze >>= 4, Qr = Qr >> 1 | Ur << 7, je = (je << 8 | De) >>> 0;
                }
                for (hr = Ze, St = Qr >> 4, nt = 0; 4 > nt; nt += 2) {
                  for (De = 0, Ze = KA.la >> 4 + nt, Qr = $e.la >> 4 + nt, at = 0; 2 > at; ++at) {
                    for (Ur = 1 & Qr, gr = 0; 2 > gr; ++gr) Dt = Ur + (1 & Ze), Ze = Ze >> 1 | (Ur = 0 < (Dt = Vi(ue, se[2], Dt, ie.Qc, 0, NA, We))) << 3, De = De << 2 | (3 < Dt ? 3 : 1 < Dt ? 2 : NA[We + 0] != 0), We += 16;
                    Ze >>= 2, Qr = Qr >> 1 | Ur << 5;
                  }
                  Oe |= De << 4 * nt, hr |= Ze << 4 << nt, St |= (240 & Qr) << nt;
                }
                KA.la = hr, $e.la = St, be.Hc = je, be.Gc = Oe, be.ia = 43690 & Oe ? 0 : ie.ia, se = !(je | Oe);
              }
              if (0 < iA.L && (iA.wa[iA.Y + iA.ja] = iA.gd[EA.$b][EA.Za], iA.wa[iA.Y + iA.ja].La |= !se), TA.Ka) return yt(oA, 7, "Premature end-of-file encountered.");
            }
            if (mi(oA), iA = MA, TA = 1, EA = (tA = oA).D, KA = 0 < tA.L && tA.M >= tA.zb && tA.M <= tA.Va, tA.Aa == 0) A: {
              if (EA.M = tA.M, EA.uc = KA, Hi(tA, EA), TA = 1, EA = (De = tA.D).Nb, KA = (Oe = Ja[tA.L]) * tA.R, ue = Oe / 2 * tA.B, at = 16 * EA * tA.R, gr = 8 * EA * tA.B, se = tA.sa, be = tA.ta - KA + at, ie = tA.qa, NA = tA.ra - ue + gr, We = tA.Ha, $e = tA.Ia - ue + gr, Qr = (Ze = De.M) == 0, je = Ze >= tA.Va - 1, tA.Aa == 2 && Hi(tA, De), De.uc) for (Ur = (Dt = tA).D.M, e(Dt.D.uc), De = Dt.yb; De < Dt.Hb; ++De) {
                St = De, hr = Ur;
                var Pt = (jt = (wt = Dt).D).Nb;
                nt = wt.R;
                var jt = jt.wa[jt.Y + St], ar = wt.sa, Pr = wt.ta + 16 * Pt * nt + 16 * St, an = jt.dd, Ot = jt.tc;
                if (Ot != 0) if (e(3 <= Ot), wt.L == 1) 0 < St && _n(ar, Pr, nt, Ot + 4), jt.La && Tr(ar, Pr, nt, Ot), 0 < hr && gs(ar, Pr, nt, Ot + 4), jt.La && Ri(ar, Pr, nt, Ot);
                else {
                  var Cn = wt.B, ps = wt.qa, Ws = wt.ra + 8 * Pt * Cn + 8 * St, On = wt.Ha, wt = wt.Ia + 8 * Pt * Cn + 8 * St;
                  Pt = jt.ld, 0 < St && (Ra(ar, Pr, nt, Ot + 4, an, Pt), fs(ps, Ws, On, wt, Cn, Ot + 4, an, Pt)), jt.La && (Nn(ar, Pr, nt, Ot, an, Pt), js(ps, Ws, On, wt, Cn, Ot, an, Pt)), 0 < hr && (Gs(ar, Pr, nt, Ot + 4, an, Pt), Oi(ps, Ws, On, wt, Cn, Ot + 4, an, Pt)), jt.La && (ds(ar, Pr, nt, Ot, an, Pt), hs(ps, Ws, On, wt, Cn, Ot, an, Pt));
                }
              }
              if (tA.ia && alert("todo:DitherRow"), iA.put != null) {
                if (De = 16 * Ze, Ze = 16 * (Ze + 1), Qr ? (iA.y = tA.sa, iA.O = tA.ta + at, iA.f = tA.qa, iA.N = tA.ra + gr, iA.ea = tA.Ha, iA.W = tA.Ia + gr) : (De -= Oe, iA.y = se, iA.O = be, iA.f = ie, iA.N = NA, iA.ea = We, iA.W = $e), je || (Ze -= Oe), Ze > iA.o && (Ze = iA.o), iA.F = null, iA.J = null, tA.Fa != null && 0 < tA.Fa.length && De < Ze && (iA.J = Di(tA, iA, De, Ze - De), iA.F = tA.mb, iA.F == null && iA.F.length == 0)) {
                  TA = yt(tA, 3, "Could not decode alpha data.");
                  break A;
                }
                De < iA.j && (Oe = iA.j - De, De = iA.j, e(!(1 & Oe)), iA.O += tA.R * Oe, iA.N += tA.B * (Oe >> 1), iA.W += tA.B * (Oe >> 1), iA.F != null && (iA.J += iA.width * Oe)), De < Ze && (iA.O += iA.v, iA.N += iA.v >> 1, iA.W += iA.v >> 1, iA.F != null && (iA.J += iA.v), iA.ka = De - iA.j, iA.U = iA.va - iA.v, iA.T = Ze - De, TA = iA.put(iA));
              }
              EA + 1 != tA.Ic || je || (r(tA.sa, tA.ta - KA, se, be + 16 * tA.R, KA), r(tA.qa, tA.ra - ue, ie, NA + 8 * tA.B, ue), r(tA.Ha, tA.Ia - ue, We, $e + 8 * tA.B, ue));
            }
            if (!TA) return yt(oA, 6, "Output aborted.");
          }
          return 1;
        }(i, l)), l.bc != null && l.bc(l), f &= 1;
      }
      return f ? (i.cb = 0, f) : 0;
    }
    function jr(i, l, f, B, y) {
      y = i[l + f + 32 * B] + (y >> 3), i[l + f + 32 * B] = -256 & y ? 0 > y ? 0 : 255 : y;
    }
    function xs(i, l, f, B, y, L) {
      jr(i, l, 0, f, B + y), jr(i, l, 1, f, B + L), jr(i, l, 2, f, B - L), jr(i, l, 3, f, B - y);
    }
    function ur(i) {
      return (20091 * i >> 16) + i;
    }
    function yi(i, l, f, B) {
      var y, L = 0, x = s(16);
      for (y = 0; 4 > y; ++y) {
        var S = i[l + 0] + i[l + 8], H = i[l + 0] - i[l + 8], M = (35468 * i[l + 4] >> 16) - ur(i[l + 12]), eA = ur(i[l + 4]) + (35468 * i[l + 12] >> 16);
        x[L + 0] = S + eA, x[L + 1] = H + M, x[L + 2] = H - M, x[L + 3] = S - eA, L += 4, l++;
      }
      for (y = L = 0; 4 > y; ++y) S = (i = x[L + 0] + 4) + x[L + 8], H = i - x[L + 8], M = (35468 * x[L + 4] >> 16) - ur(x[L + 12]), jr(f, B, 0, 0, S + (eA = ur(x[L + 4]) + (35468 * x[L + 12] >> 16))), jr(f, B, 1, 0, H + M), jr(f, B, 2, 0, H - M), jr(f, B, 3, 0, S - eA), L++, B += 32;
    }
    function Fa(i, l, f, B) {
      var y = i[l + 0] + 4, L = 35468 * i[l + 4] >> 16, x = ur(i[l + 4]), S = 35468 * i[l + 1] >> 16;
      xs(f, B, 0, y + x, i = ur(i[l + 1]), S), xs(f, B, 1, y + L, i, S), xs(f, B, 2, y - L, i, S), xs(f, B, 3, y - x, i, S);
    }
    function bl(i, l, f, B, y) {
      yi(i, l, f, B), y && yi(i, l + 16, f, B + 4);
    }
    function Qa(i, l, f, B) {
      vn(i, l + 0, f, B, 1), vn(i, l + 32, f, B + 128, 1);
    }
    function Fl(i, l, f, B) {
      var y;
      for (i = i[l + 0] + 4, y = 0; 4 > y; ++y) for (l = 0; 4 > l; ++l) jr(f, B, l, y, i);
    }
    function Ua(i, l, f, B) {
      i[l + 0] && ir(i, l + 0, f, B), i[l + 16] && ir(i, l + 16, f, B + 4), i[l + 32] && ir(i, l + 32, f, B + 128), i[l + 48] && ir(i, l + 48, f, B + 128 + 4);
    }
    function Ql(i, l, f, B) {
      var y, L = s(16);
      for (y = 0; 4 > y; ++y) {
        var x = i[l + 0 + y] + i[l + 12 + y], S = i[l + 4 + y] + i[l + 8 + y], H = i[l + 4 + y] - i[l + 8 + y], M = i[l + 0 + y] - i[l + 12 + y];
        L[0 + y] = x + S, L[8 + y] = x - S, L[4 + y] = M + H, L[12 + y] = M - H;
      }
      for (y = 0; 4 > y; ++y) x = (i = L[0 + 4 * y] + 3) + L[3 + 4 * y], S = L[1 + 4 * y] + L[2 + 4 * y], H = L[1 + 4 * y] - L[2 + 4 * y], M = i - L[3 + 4 * y], f[B + 0] = x + S >> 3, f[B + 16] = M + H >> 3, f[B + 32] = x - S >> 3, f[B + 48] = M - H >> 3, B += 64;
    }
    function Ci(i, l, f) {
      var B, y = l - 32, L = Fr, x = 255 - i[y - 1];
      for (B = 0; B < f; ++B) {
        var S, H = L, M = x + i[l - 1];
        for (S = 0; S < f; ++S) i[l + S] = H[M + i[y + S]];
        l += 32;
      }
    }
    function Ul(i, l) {
      Ci(i, l, 4);
    }
    function Ll(i, l) {
      Ci(i, l, 8);
    }
    function El(i, l) {
      Ci(i, l, 16);
    }
    function gn(i, l) {
      var f;
      for (f = 0; 16 > f; ++f) r(i, l + 32 * f, i, l - 32, 16);
    }
    function Is(i, l) {
      var f;
      for (f = 16; 0 < f; --f) n(i, l, i[l - 1], 16), l += 32;
    }
    function Ss(i, l, f) {
      var B;
      for (B = 0; 16 > B; ++B) n(l, f + 32 * B, i, 16);
    }
    function La(i, l) {
      var f, B = 16;
      for (f = 0; 16 > f; ++f) B += i[l - 1 + 32 * f] + i[l + f - 32];
      Ss(B >> 5, i, l);
    }
    function zt(i, l) {
      var f, B = 8;
      for (f = 0; 16 > f; ++f) B += i[l - 1 + 32 * f];
      Ss(B >> 4, i, l);
    }
    function xl(i, l) {
      var f, B = 8;
      for (f = 0; 16 > f; ++f) B += i[l + f - 32];
      Ss(B >> 4, i, l);
    }
    function Ea(i, l) {
      Ss(128, i, l);
    }
    function Le(i, l, f) {
      return i + 2 * l + f + 2 >> 2;
    }
    function Il(i, l) {
      var f, B = l - 32;
      for (B = new Uint8Array([Le(i[B - 1], i[B + 0], i[B + 1]), Le(i[B + 0], i[B + 1], i[B + 2]), Le(i[B + 1], i[B + 2], i[B + 3]), Le(i[B + 2], i[B + 3], i[B + 4])]), f = 0; 4 > f; ++f) r(i, l + 32 * f, B, 0, B.length);
    }
    function Sl(i, l) {
      var f = i[l - 1], B = i[l - 1 + 32], y = i[l - 1 + 64], L = i[l - 1 + 96];
      jA(i, l + 0, 16843009 * Le(i[l - 1 - 32], f, B)), jA(i, l + 32, 16843009 * Le(f, B, y)), jA(i, l + 64, 16843009 * Le(B, y, L)), jA(i, l + 96, 16843009 * Le(y, L, L));
    }
    function rn(i, l) {
      var f, B = 4;
      for (f = 0; 4 > f; ++f) B += i[l + f - 32] + i[l - 1 + 32 * f];
      for (B >>= 3, f = 0; 4 > f; ++f) n(i, l + 32 * f, B, 4);
    }
    function xa(i, l) {
      var f = i[l - 1 + 0], B = i[l - 1 + 32], y = i[l - 1 + 64], L = i[l - 1 - 32], x = i[l + 0 - 32], S = i[l + 1 - 32], H = i[l + 2 - 32], M = i[l + 3 - 32];
      i[l + 0 + 96] = Le(B, y, i[l - 1 + 96]), i[l + 1 + 96] = i[l + 0 + 64] = Le(f, B, y), i[l + 2 + 96] = i[l + 1 + 64] = i[l + 0 + 32] = Le(L, f, B), i[l + 3 + 96] = i[l + 2 + 64] = i[l + 1 + 32] = i[l + 0 + 0] = Le(x, L, f), i[l + 3 + 64] = i[l + 2 + 32] = i[l + 1 + 0] = Le(S, x, L), i[l + 3 + 32] = i[l + 2 + 0] = Le(H, S, x), i[l + 3 + 0] = Le(M, H, S);
    }
    function Ia(i, l) {
      var f = i[l + 1 - 32], B = i[l + 2 - 32], y = i[l + 3 - 32], L = i[l + 4 - 32], x = i[l + 5 - 32], S = i[l + 6 - 32], H = i[l + 7 - 32];
      i[l + 0 + 0] = Le(i[l + 0 - 32], f, B), i[l + 1 + 0] = i[l + 0 + 32] = Le(f, B, y), i[l + 2 + 0] = i[l + 1 + 32] = i[l + 0 + 64] = Le(B, y, L), i[l + 3 + 0] = i[l + 2 + 32] = i[l + 1 + 64] = i[l + 0 + 96] = Le(y, L, x), i[l + 3 + 32] = i[l + 2 + 64] = i[l + 1 + 96] = Le(L, x, S), i[l + 3 + 64] = i[l + 2 + 96] = Le(x, S, H), i[l + 3 + 96] = Le(S, H, H);
    }
    function Ds(i, l) {
      var f = i[l - 1 + 0], B = i[l - 1 + 32], y = i[l - 1 + 64], L = i[l - 1 - 32], x = i[l + 0 - 32], S = i[l + 1 - 32], H = i[l + 2 - 32], M = i[l + 3 - 32];
      i[l + 0 + 0] = i[l + 1 + 64] = L + x + 1 >> 1, i[l + 1 + 0] = i[l + 2 + 64] = x + S + 1 >> 1, i[l + 2 + 0] = i[l + 3 + 64] = S + H + 1 >> 1, i[l + 3 + 0] = H + M + 1 >> 1, i[l + 0 + 96] = Le(y, B, f), i[l + 0 + 64] = Le(B, f, L), i[l + 0 + 32] = i[l + 1 + 96] = Le(f, L, x), i[l + 1 + 32] = i[l + 2 + 96] = Le(L, x, S), i[l + 2 + 32] = i[l + 3 + 96] = Le(x, S, H), i[l + 3 + 32] = Le(S, H, M);
    }
    function bi(i, l) {
      var f = i[l + 0 - 32], B = i[l + 1 - 32], y = i[l + 2 - 32], L = i[l + 3 - 32], x = i[l + 4 - 32], S = i[l + 5 - 32], H = i[l + 6 - 32], M = i[l + 7 - 32];
      i[l + 0 + 0] = f + B + 1 >> 1, i[l + 1 + 0] = i[l + 0 + 64] = B + y + 1 >> 1, i[l + 2 + 0] = i[l + 1 + 64] = y + L + 1 >> 1, i[l + 3 + 0] = i[l + 2 + 64] = L + x + 1 >> 1, i[l + 0 + 32] = Le(f, B, y), i[l + 1 + 32] = i[l + 0 + 96] = Le(B, y, L), i[l + 2 + 32] = i[l + 1 + 96] = Le(y, L, x), i[l + 3 + 32] = i[l + 2 + 96] = Le(L, x, S), i[l + 3 + 64] = Le(x, S, H), i[l + 3 + 96] = Le(S, H, M);
    }
    function Dl(i, l) {
      var f = i[l - 1 + 0], B = i[l - 1 + 32], y = i[l - 1 + 64], L = i[l - 1 + 96];
      i[l + 0 + 0] = f + B + 1 >> 1, i[l + 2 + 0] = i[l + 0 + 32] = B + y + 1 >> 1, i[l + 2 + 32] = i[l + 0 + 64] = y + L + 1 >> 1, i[l + 1 + 0] = Le(f, B, y), i[l + 3 + 0] = i[l + 1 + 32] = Le(B, y, L), i[l + 3 + 32] = i[l + 1 + 64] = Le(y, L, L), i[l + 3 + 64] = i[l + 2 + 64] = i[l + 0 + 96] = i[l + 1 + 96] = i[l + 2 + 96] = i[l + 3 + 96] = L;
    }
    function kl(i, l) {
      var f = i[l - 1 + 0], B = i[l - 1 + 32], y = i[l - 1 + 64], L = i[l - 1 + 96], x = i[l - 1 - 32], S = i[l + 0 - 32], H = i[l + 1 - 32], M = i[l + 2 - 32];
      i[l + 0 + 0] = i[l + 2 + 32] = f + x + 1 >> 1, i[l + 0 + 32] = i[l + 2 + 64] = B + f + 1 >> 1, i[l + 0 + 64] = i[l + 2 + 96] = y + B + 1 >> 1, i[l + 0 + 96] = L + y + 1 >> 1, i[l + 3 + 0] = Le(S, H, M), i[l + 2 + 0] = Le(x, S, H), i[l + 1 + 0] = i[l + 3 + 32] = Le(f, x, S), i[l + 1 + 32] = i[l + 3 + 64] = Le(B, f, x), i[l + 1 + 64] = i[l + 3 + 96] = Le(y, B, f), i[l + 1 + 96] = Le(L, y, B);
    }
    function Hl(i, l) {
      var f;
      for (f = 0; 8 > f; ++f) r(i, l + 32 * f, i, l - 32, 8);
    }
    function Fi(i, l) {
      var f;
      for (f = 0; 8 > f; ++f) n(i, l, i[l - 1], 8), l += 32;
    }
    function as(i, l, f) {
      var B;
      for (B = 0; 8 > B; ++B) n(l, f + 32 * B, i, 8);
    }
    function Sn(i, l) {
      var f, B = 8;
      for (f = 0; 8 > f; ++f) B += i[l + f - 32] + i[l - 1 + 32 * f];
      as(B >> 4, i, l);
    }
    function Tl(i, l) {
      var f, B = 4;
      for (f = 0; 8 > f; ++f) B += i[l + f - 32];
      as(B >> 3, i, l);
    }
    function os(i, l) {
      var f, B = 4;
      for (f = 0; 8 > f; ++f) B += i[l - 1 + 32 * f];
      as(B >> 3, i, l);
    }
    function Qi(i, l) {
      as(128, i, l);
    }
    function ks(i, l, f) {
      var B = i[l - f], y = i[l + 0], L = 3 * (y - B) + Rl[1020 + i[l - 2 * f] - i[l + f]], x = Va[112 + (L + 4 >> 3)];
      i[l - f] = Fr[255 + B + Va[112 + (L + 3 >> 3)]], i[l + 0] = Fr[255 + y - x];
    }
    function Sa(i, l, f, B) {
      var y = i[l + 0], L = i[l + f];
      return _r[255 + i[l - 2 * f] - i[l - f]] > B || _r[255 + L - y] > B;
    }
    function Da(i, l, f, B) {
      return 4 * _r[255 + i[l - f] - i[l + 0]] + _r[255 + i[l - 2 * f] - i[l + f]] <= B;
    }
    function ka(i, l, f, B, y) {
      var L = i[l - 3 * f], x = i[l - 2 * f], S = i[l - f], H = i[l + 0], M = i[l + f], eA = i[l + 2 * f], pA = i[l + 3 * f];
      return 4 * _r[255 + S - H] + _r[255 + x - M] > B ? 0 : _r[255 + i[l - 4 * f] - L] <= y && _r[255 + L - x] <= y && _r[255 + x - S] <= y && _r[255 + pA - eA] <= y && _r[255 + eA - M] <= y && _r[255 + M - H] <= y;
    }
    function Ha(i, l, f, B) {
      var y = 2 * B + 1;
      for (B = 0; 16 > B; ++B) Da(i, l + B, f, y) && ks(i, l + B, f);
    }
    function nn(i, l, f, B) {
      var y = 2 * B + 1;
      for (B = 0; 16 > B; ++B) Da(i, l + B * f, 1, y) && ks(i, l + B * f, 1);
    }
    function pn(i, l, f, B) {
      var y;
      for (y = 3; 0 < y; --y) Ha(i, l += 4 * f, f, B);
    }
    function Nl(i, l, f, B) {
      var y;
      for (y = 3; 0 < y; --y) nn(i, l += 4, f, B);
    }
    function Dn(i, l, f, B, y, L, x, S) {
      for (L = 2 * L + 1; 0 < y--; ) {
        if (ka(i, l, f, L, x)) if (Sa(i, l, f, S)) ks(i, l, f);
        else {
          var H = i, M = l, eA = f, pA = H[M - 2 * eA], BA = H[M - eA], oA = H[M + 0], MA = H[M + eA], EA = H[M + 2 * eA], tA = 27 * (TA = Rl[1020 + 3 * (oA - BA) + Rl[1020 + pA - MA]]) + 63 >> 7, iA = 18 * TA + 63 >> 7, TA = 9 * TA + 63 >> 7;
          H[M - 3 * eA] = Fr[255 + H[M - 3 * eA] + TA], H[M - 2 * eA] = Fr[255 + pA + iA], H[M - eA] = Fr[255 + BA + tA], H[M + 0] = Fr[255 + oA - tA], H[M + eA] = Fr[255 + MA - iA], H[M + 2 * eA] = Fr[255 + EA - TA];
        }
        l += B;
      }
    }
    function qr(i, l, f, B, y, L, x, S) {
      for (L = 2 * L + 1; 0 < y--; ) {
        if (ka(i, l, f, L, x)) if (Sa(i, l, f, S)) ks(i, l, f);
        else {
          var H = i, M = l, eA = f, pA = H[M - eA], BA = H[M + 0], oA = H[M + eA], MA = Va[112 + ((EA = 3 * (BA - pA)) + 4 >> 3)], EA = Va[112 + (EA + 3 >> 3)], tA = MA + 1 >> 1;
          H[M - 2 * eA] = Fr[255 + H[M - 2 * eA] + tA], H[M - eA] = Fr[255 + pA + EA], H[M + 0] = Fr[255 + BA - MA], H[M + eA] = Fr[255 + oA - tA];
        }
        l += B;
      }
    }
    function Ui(i, l, f, B, y, L) {
      Dn(i, l, f, 1, 16, B, y, L);
    }
    function ls(i, l, f, B, y, L) {
      Dn(i, l, 1, f, 16, B, y, L);
    }
    function _l(i, l, f, B, y, L) {
      var x;
      for (x = 3; 0 < x; --x) qr(i, l += 4 * f, f, 1, 16, B, y, L);
    }
    function Hs(i, l, f, B, y, L) {
      var x;
      for (x = 3; 0 < x; --x) qr(i, l += 4, 1, f, 16, B, y, L);
    }
    function Ml(i, l, f, B, y, L, x, S) {
      Dn(i, l, y, 1, 8, L, x, S), Dn(f, B, y, 1, 8, L, x, S);
    }
    function Li(i, l, f, B, y, L, x, S) {
      Dn(i, l, 1, y, 8, L, x, S), Dn(f, B, 1, y, 8, L, x, S);
    }
    function Ei(i, l, f, B, y, L, x, S) {
      qr(i, l + 4 * y, y, 1, 8, L, x, S), qr(f, B + 4 * y, y, 1, 8, L, x, S);
    }
    function Ta(i, l, f, B, y, L, x, S) {
      qr(i, l + 4, 1, y, 8, L, x, S), qr(f, B + 4, 1, y, 8, L, x, S);
    }
    function Ts() {
      this.ba = new _A(), this.ec = [], this.cc = [], this.Mc = [], this.Dc = this.Nc = this.dc = this.fc = 0, this.Oa = new JA(), this.memory = 0, this.Ib = "OutputFunc", this.Jb = "OutputAlphaFunc", this.Nd = "OutputRowFunc";
    }
    function xi() {
      this.data = [], this.offset = this.kd = this.ha = this.w = 0, this.na = [], this.xa = this.gb = this.Ja = this.Sa = this.P = 0;
    }
    function Ii() {
      this.nc = this.Ea = this.b = this.hc = 0, this.K = [], this.w = 0;
    }
    function Na() {
      this.ua = 0, this.Wa = new G(), this.vb = new G(), this.md = this.xc = this.wc = 0, this.vc = [], this.Wb = 0, this.Ya = new U(), this.yc = new Q();
    }
    function Pl() {
      this.xb = this.a = 0, this.l = new Es(), this.ca = new _A(), this.V = [], this.Ba = 0, this.Ta = [], this.Ua = 0, this.m = new b(), this.Pb = 0, this.wd = new b(), this.Ma = this.$ = this.C = this.i = this.c = this.xd = 0, this.s = new Na(), this.ab = 0, this.gc = a(4, Ii), this.Oc = 0;
    }
    function Ns() {
      this.Lc = this.Z = this.$a = this.i = this.c = 0, this.l = new Es(), this.ic = 0, this.ca = [], this.tb = 0, this.qd = null, this.rd = 0;
    }
    function cs(i, l, f, B, y, L, x) {
      for (i = i == null ? 0 : i[l + 0], l = 0; l < x; ++l) y[L + l] = i + f[B + l] & 255, i = y[L + l];
    }
    function Si(i, l, f, B, y, L, x) {
      var S;
      if (i == null) cs(null, null, f, B, y, L, x);
      else for (S = 0; S < x; ++S) y[L + S] = i[l + S] + f[B + S] & 255;
    }
    function kn(i, l, f, B, y, L, x) {
      if (i == null) cs(null, null, f, B, y, L, x);
      else {
        var S, H = i[l + 0], M = H, eA = H;
        for (S = 0; S < x; ++S) M = eA + (H = i[l + S]) - M, eA = f[B + S] + (-256 & M ? 0 > M ? 0 : 255 : M) & 255, M = H, y[L + S] = eA;
      }
    }
    function Di(i, l, f, B) {
      var y = l.width, L = l.o;
      if (e(i != null && l != null), 0 > f || 0 >= B || f + B > L) return null;
      if (!i.Cc) {
        if (i.ga == null) {
          var x;
          if (i.ga = new Ns(), (x = i.ga == null) || (x = l.width * l.o, e(i.Gb.length == 0), i.Gb = s(x), i.Uc = 0, i.Gb == null ? x = 0 : (i.mb = i.Gb, i.nb = i.Uc, i.rc = null, x = 1), x = !x), !x) {
            x = i.ga;
            var S = i.Fa, H = i.P, M = i.qc, eA = i.mb, pA = i.nb, BA = H + 1, oA = M - 1, MA = x.l;
            if (e(S != null && eA != null && l != null), Pn[0] = null, Pn[1] = cs, Pn[2] = Si, Pn[3] = kn, x.ca = eA, x.tb = pA, x.c = l.width, x.i = l.height, e(0 < x.c && 0 < x.i), 1 >= M) l = 0;
            else if (x.$a = S[H + 0] >> 0 & 3, x.Z = S[H + 0] >> 2 & 3, x.Lc = S[H + 0] >> 4 & 3, H = S[H + 0] >> 6 & 3, 0 > x.$a || 1 < x.$a || 4 <= x.Z || 1 < x.Lc || H) l = 0;
            else if (MA.put = $A, MA.ac = ve, MA.bc = ee, MA.ma = x, MA.width = l.width, MA.height = l.height, MA.Da = l.Da, MA.v = l.v, MA.va = l.va, MA.j = l.j, MA.o = l.o, x.$a) A: {
              e(x.$a == 1), l = vA();
              e: for (; ; ) {
                if (l == null) {
                  l = 0;
                  break A;
                }
                if (e(x != null), x.mc = l, l.c = x.c, l.i = x.i, l.l = x.l, l.l.ma = x, l.l.width = x.c, l.l.height = x.i, l.a = 0, z(l.m, S, BA, oA), !xA(x.c, x.i, 1, l, null) || (l.ab == 1 && l.gc[0].hc == 3 && lr(l.s) ? (x.ic = 1, S = l.c * l.i, l.Ta = null, l.Ua = 0, l.V = s(S), l.Ba = 0, l.V == null ? (l.a = 1, l = 0) : l = 1) : (x.ic = 0, l = dA(l, x.c)), !l)) break e;
                l = 1;
                break A;
              }
              x.mc = null, l = 0;
            }
            else l = oA >= x.c * x.i;
            x = !l;
          }
          if (x) return null;
          i.ga.Lc != 1 ? i.Ga = 0 : B = L - f;
        }
        e(i.ga != null), e(f + B <= L);
        A: {
          if (l = (S = i.ga).c, L = S.l.o, S.$a == 0) {
            if (BA = i.rc, oA = i.Vc, MA = i.Fa, H = i.P + 1 + f * l, M = i.mb, eA = i.nb + f * l, e(H <= i.P + i.qc), S.Z != 0) for (e(Pn[S.Z] != null), x = 0; x < B; ++x) Pn[S.Z](BA, oA, MA, H, M, eA, l), BA = M, oA = eA, eA += l, H += l;
            else for (x = 0; x < B; ++x) r(M, eA, MA, H, l), BA = M, oA = eA, eA += l, H += l;
            i.rc = BA, i.Vc = oA;
          } else {
            if (e(S.mc != null), l = f + B, e((x = S.mc) != null), e(l <= x.i), x.C >= l) l = 1;
            else if (S.ic || fA(), S.ic) {
              S = x.V, BA = x.Ba, oA = x.c;
              var EA = x.i, tA = (MA = 1, H = x.$ / oA, M = x.$ % oA, eA = x.m, pA = x.s, x.$), iA = oA * EA, TA = oA * l, KA = pA.wc, NA = tA < TA ? rt(pA, M, H) : null;
              e(tA <= iA), e(l <= EA), e(lr(pA));
              e: for (; ; ) {
                for (; !eA.h && tA < TA; ) {
                  if (M & KA || (NA = rt(pA, M, H)), e(NA != null), $(eA), 256 > (EA = ze(NA.G[0], NA.H[0], eA))) S[BA + tA] = EA, ++tA, ++M >= oA && (M = 0, ++H <= l && !(H % 16) && nr(x, H));
                  else {
                    if (!(280 > EA)) {
                      MA = 0;
                      break e;
                    }
                    EA = Ne(EA - 256, eA);
                    var ue, se = ze(NA.G[4], NA.H[4], eA);
                    if ($(eA), !(tA >= (se = it(oA, se = Ne(se, eA))) && iA - tA >= EA)) {
                      MA = 0;
                      break e;
                    }
                    for (ue = 0; ue < EA; ++ue) S[BA + tA + ue] = S[BA + tA + ue - se];
                    for (tA += EA, M += EA; M >= oA; ) M -= oA, ++H <= l && !(H % 16) && nr(x, H);
                    tA < TA && M & KA && (NA = rt(pA, M, H));
                  }
                  e(eA.h == _(eA));
                }
                nr(x, H > l ? l : H);
                break e;
              }
              !MA || eA.h && tA < iA ? (MA = 0, x.a = eA.h ? 5 : 3) : x.$ = tA, l = MA;
            } else l = Vt(x, x.V, x.Ba, x.c, x.i, l, zA);
            if (!l) {
              B = 0;
              break A;
            }
          }
          f + B >= L && (i.Cc = 1), B = 1;
        }
        if (!B) return null;
        if (i.Cc && ((B = i.ga) != null && (B.mc = null), i.ga = null, 0 < i.Ga)) return alert("todo:WebPDequantizeLevels"), null;
      }
      return i.nb + f * y;
    }
    function u(i, l, f, B, y, L) {
      for (; 0 < y--; ) {
        var x, S = i, H = l + (f ? 1 : 0), M = i, eA = l + (f ? 0 : 3);
        for (x = 0; x < B; ++x) {
          var pA = M[eA + 4 * x];
          pA != 255 && (pA *= 32897, S[H + 4 * x + 0] = S[H + 4 * x + 0] * pA >> 23, S[H + 4 * x + 1] = S[H + 4 * x + 1] * pA >> 23, S[H + 4 * x + 2] = S[H + 4 * x + 2] * pA >> 23);
        }
        l += L;
      }
    }
    function C(i, l, f, B, y) {
      for (; 0 < B--; ) {
        var L;
        for (L = 0; L < f; ++L) {
          var x = i[l + 2 * L + 0], S = 15 & (M = i[l + 2 * L + 1]), H = 4369 * S, M = (240 & M | M >> 4) * H >> 16;
          i[l + 2 * L + 0] = (240 & x | x >> 4) * H >> 16 & 240 | (15 & x | x << 4) * H >> 16 >> 4 & 15, i[l + 2 * L + 1] = 240 & M | S;
        }
        l += y;
      }
    }
    function K(i, l, f, B, y, L, x, S) {
      var H, M, eA = 255;
      for (M = 0; M < y; ++M) {
        for (H = 0; H < B; ++H) {
          var pA = i[l + H];
          L[x + 4 * H] = pA, eA &= pA;
        }
        l += f, x += S;
      }
      return eA != 255;
    }
    function Z(i, l, f, B, y) {
      var L;
      for (L = 0; L < y; ++L) f[B + L] = i[l + L] >> 8;
    }
    function fA() {
      Nr = u, lt = C, ct = K, bt = Z;
    }
    function SA(i, l, f) {
      O[i] = function(B, y, L, x, S, H, M, eA, pA, BA, oA, MA, EA, tA, iA, TA, KA) {
        var NA, ue = KA - 1 >> 1, se = S[H + 0] | M[eA + 0] << 16, be = pA[BA + 0] | oA[MA + 0] << 16;
        e(B != null);
        var ie = 3 * se + be + 131074 >> 2;
        for (l(B[y + 0], 255 & ie, ie >> 16, EA, tA), L != null && (ie = 3 * be + se + 131074 >> 2, l(L[x + 0], 255 & ie, ie >> 16, iA, TA)), NA = 1; NA <= ue; ++NA) {
          var We = S[H + NA] | M[eA + NA] << 16, $e = pA[BA + NA] | oA[MA + NA] << 16, je = se + We + be + $e + 524296, Oe = je + 2 * (We + be) >> 3;
          ie = Oe + se >> 1, se = (je = je + 2 * (se + $e) >> 3) + We >> 1, l(B[y + 2 * NA - 1], 255 & ie, ie >> 16, EA, tA + (2 * NA - 1) * f), l(B[y + 2 * NA - 0], 255 & se, se >> 16, EA, tA + (2 * NA - 0) * f), L != null && (ie = je + be >> 1, se = Oe + $e >> 1, l(L[x + 2 * NA - 1], 255 & ie, ie >> 16, iA, TA + (2 * NA - 1) * f), l(L[x + 2 * NA + 0], 255 & se, se >> 16, iA, TA + (2 * NA + 0) * f)), se = We, be = $e;
        }
        1 & KA || (ie = 3 * se + be + 131074 >> 2, l(B[y + KA - 1], 255 & ie, ie >> 16, EA, tA + (KA - 1) * f), L != null && (ie = 3 * be + se + 131074 >> 2, l(L[x + KA - 1], 255 & ie, ie >> 16, iA, TA + (KA - 1) * f)));
      };
    }
    function GA() {
      Mr[Ga] = Bg, Mr[ja] = Tu, Mr[Iu] = wg, Mr[qa] = Nu, Mr[Wa] = _u, Mr[Kl] = Mu, Mr[Su] = vg, Mr[Vl] = Tu, Mr[Gl] = Nu, Mr[Xa] = _u, Mr[jl] = Mu;
    }
    function le(i) {
      return i & -16384 ? 0 > i ? 0 : 255 : i >> mg;
    }
    function ye(i, l) {
      return le((19077 * i >> 8) + (26149 * l >> 8) - 14234);
    }
    function Ie(i, l, f) {
      return le((19077 * i >> 8) - (6419 * l >> 8) - (13320 * f >> 8) + 8708);
    }
    function Ee(i, l) {
      return le((19077 * i >> 8) + (33050 * l >> 8) - 17685);
    }
    function Ge(i, l, f, B, y) {
      B[y + 0] = ye(i, f), B[y + 1] = Ie(i, l, f), B[y + 2] = Ee(i, l);
    }
    function gt(i, l, f, B, y) {
      B[y + 0] = Ee(i, l), B[y + 1] = Ie(i, l, f), B[y + 2] = ye(i, f);
    }
    function Bt(i, l, f, B, y) {
      var L = Ie(i, l, f);
      l = L << 3 & 224 | Ee(i, l) >> 3, B[y + 0] = 248 & ye(i, f) | L >> 5, B[y + 1] = l;
    }
    function It(i, l, f, B, y) {
      var L = 240 & Ee(i, l) | 15;
      B[y + 0] = 240 & ye(i, f) | Ie(i, l, f) >> 4, B[y + 1] = L;
    }
    function Yt(i, l, f, B, y) {
      B[y + 0] = 255, Ge(i, l, f, B, y + 1);
    }
    function Mt(i, l, f, B, y) {
      gt(i, l, f, B, y), B[y + 3] = 255;
    }
    function Wr(i, l, f, B, y) {
      Ge(i, l, f, B, y), B[y + 3] = 255;
    }
    function br(i, l) {
      return 0 > i ? 0 : i > l ? l : i;
    }
    function sn(i, l, f) {
      O[i] = function(B, y, L, x, S, H, M, eA, pA) {
        for (var BA = eA + (-2 & pA) * f; eA != BA; ) l(B[y + 0], L[x + 0], S[H + 0], M, eA), l(B[y + 1], L[x + 0], S[H + 0], M, eA + f), y += 2, ++x, ++H, eA += 2 * f;
        1 & pA && l(B[y + 0], L[x + 0], S[H + 0], M, eA);
      };
    }
    function _a(i, l, f) {
      return f == 0 ? i == 0 ? l == 0 ? 6 : 5 : l == 0 ? 4 : 0 : f;
    }
    function ki(i, l, f, B, y) {
      switch (i >>> 30) {
        case 3:
          vn(l, f, B, y, 0);
          break;
        case 2:
          Ct(l, f, B, y);
          break;
        case 1:
          ir(l, f, B, y);
      }
    }
    function Hi(i, l) {
      var f, B, y = l.M, L = l.Nb, x = i.oc, S = i.pc + 40, H = i.oc, M = i.pc + 584, eA = i.oc, pA = i.pc + 600;
      for (f = 0; 16 > f; ++f) x[S + 32 * f - 1] = 129;
      for (f = 0; 8 > f; ++f) H[M + 32 * f - 1] = 129, eA[pA + 32 * f - 1] = 129;
      for (0 < y ? x[S - 1 - 32] = H[M - 1 - 32] = eA[pA - 1 - 32] = 129 : (n(x, S - 32 - 1, 127, 21), n(H, M - 32 - 1, 127, 9), n(eA, pA - 32 - 1, 127, 9)), B = 0; B < i.za; ++B) {
        var BA = l.ya[l.aa + B];
        if (0 < B) {
          for (f = -1; 16 > f; ++f) r(x, S + 32 * f - 4, x, S + 32 * f + 12, 4);
          for (f = -1; 8 > f; ++f) r(H, M + 32 * f - 4, H, M + 32 * f + 4, 4), r(eA, pA + 32 * f - 4, eA, pA + 32 * f + 4, 4);
        }
        var oA = i.Gd, MA = i.Hd + B, EA = BA.ad, tA = BA.Hc;
        if (0 < y && (r(x, S - 32, oA[MA].y, 0, 16), r(H, M - 32, oA[MA].f, 0, 8), r(eA, pA - 32, oA[MA].ea, 0, 8)), BA.Za) {
          var iA = x, TA = S - 32 + 16;
          for (0 < y && (B >= i.za - 1 ? n(iA, TA, oA[MA].y[15], 4) : r(iA, TA, oA[MA + 1].y, 0, 4)), f = 0; 4 > f; f++) iA[TA + 128 + f] = iA[TA + 256 + f] = iA[TA + 384 + f] = iA[TA + 0 + f];
          for (f = 0; 16 > f; ++f, tA <<= 2) iA = x, TA = S + Ou[f], Xr[BA.Ob[f]](iA, TA), ki(tA, EA, 16 * +f, iA, TA);
        } else if (iA = _a(B, y, BA.Ob[0]), Mn[iA](x, S), tA != 0) for (f = 0; 16 > f; ++f, tA <<= 2) ki(tA, EA, 16 * +f, x, S + Ou[f]);
        for (f = BA.Gc, iA = _a(B, y, BA.Dd), yn[iA](H, M), yn[iA](eA, pA), tA = EA, iA = H, TA = M, 255 & (BA = f >> 0) && (170 & BA ? Pi(tA, 256, iA, TA) : Hr(tA, 256, iA, TA)), BA = eA, tA = pA, 255 & (f >>= 8) && (170 & f ? Pi(EA, 320, BA, tA) : Hr(EA, 320, BA, tA)), y < i.Ub - 1 && (r(oA[MA].y, 0, x, S + 480, 16), r(oA[MA].f, 0, H, M + 224, 8), r(oA[MA].ea, 0, eA, pA + 224, 8)), f = 8 * L * i.B, oA = i.sa, MA = i.ta + 16 * B + 16 * L * i.R, EA = i.qa, BA = i.ra + 8 * B + f, tA = i.Ha, iA = i.Ia + 8 * B + f, f = 0; 16 > f; ++f) r(oA, MA + f * i.R, x, S + 32 * f, 16);
        for (f = 0; 8 > f; ++f) r(EA, BA + f * i.B, H, M + 32 * f, 8), r(tA, iA + f * i.B, eA, pA + 32 * f, 8);
      }
    }
    function _s(i, l, f, B, y, L, x, S, H) {
      var M = [0], eA = [0], pA = 0, BA = H != null ? H.kd : 0, oA = H ?? new xi();
      if (i == null || 12 > f) return 7;
      oA.data = i, oA.w = l, oA.ha = f, l = [l], f = [f], oA.gb = [oA.gb];
      A: {
        var MA = l, EA = f, tA = oA.gb;
        if (e(i != null), e(EA != null), e(tA != null), tA[0] = 0, 12 <= EA[0] && !A(i, MA[0], "RIFF")) {
          if (A(i, MA[0] + 8, "WEBP")) {
            tA = 3;
            break A;
          }
          var iA = nA(i, MA[0] + 4);
          if (12 > iA || 4294967286 < iA) {
            tA = 3;
            break A;
          }
          if (BA && iA > EA[0] - 8) {
            tA = 7;
            break A;
          }
          tA[0] = iA, MA[0] += 12, EA[0] -= 12;
        }
        tA = 0;
      }
      if (tA != 0) return tA;
      for (iA = 0 < oA.gb[0], f = f[0]; ; ) {
        A: {
          var TA = i;
          EA = l, tA = f;
          var KA = M, NA = eA, ue = MA = [0];
          if ((ie = pA = [pA])[0] = 0, 8 > tA[0]) tA = 7;
          else {
            if (!A(TA, EA[0], "VP8X")) {
              if (nA(TA, EA[0] + 4) != 10) {
                tA = 3;
                break A;
              }
              if (18 > tA[0]) {
                tA = 7;
                break A;
              }
              var se = nA(TA, EA[0] + 8), be = 1 + YA(TA, EA[0] + 12);
              if (2147483648 <= be * (TA = 1 + YA(TA, EA[0] + 15))) {
                tA = 3;
                break A;
              }
              ue != null && (ue[0] = se), KA != null && (KA[0] = be), NA != null && (NA[0] = TA), EA[0] += 18, tA[0] -= 18, ie[0] = 1;
            }
            tA = 0;
          }
        }
        if (pA = pA[0], MA = MA[0], tA != 0) return tA;
        if (EA = !!(2 & MA), !iA && pA) return 3;
        if (L != null && (L[0] = !!(16 & MA)), x != null && (x[0] = EA), S != null && (S[0] = 0), x = M[0], MA = eA[0], pA && EA && H == null) {
          tA = 0;
          break;
        }
        if (4 > f) {
          tA = 7;
          break;
        }
        if (iA && pA || !iA && !pA && !A(i, l[0], "ALPH")) {
          f = [f], oA.na = [oA.na], oA.P = [oA.P], oA.Sa = [oA.Sa];
          A: {
            se = i, tA = l, iA = f;
            var ie = oA.gb;
            KA = oA.na, NA = oA.P, ue = oA.Sa, be = 22, e(se != null), e(iA != null), TA = tA[0];
            var We = iA[0];
            for (e(KA != null), e(ue != null), KA[0] = null, NA[0] = null, ue[0] = 0; ; ) {
              if (tA[0] = TA, iA[0] = We, 8 > We) {
                tA = 7;
                break A;
              }
              var $e = nA(se, TA + 4);
              if (4294967286 < $e) {
                tA = 3;
                break A;
              }
              var je = 8 + $e + 1 & -2;
              if (be += je, 0 < ie && be > ie) {
                tA = 3;
                break A;
              }
              if (!A(se, TA, "VP8 ") || !A(se, TA, "VP8L")) {
                tA = 0;
                break A;
              }
              if (We[0] < je) {
                tA = 7;
                break A;
              }
              A(se, TA, "ALPH") || (KA[0] = se, NA[0] = TA + 8, ue[0] = $e), TA += je, We -= je;
            }
          }
          if (f = f[0], oA.na = oA.na[0], oA.P = oA.P[0], oA.Sa = oA.Sa[0], tA != 0) break;
        }
        f = [f], oA.Ja = [oA.Ja], oA.xa = [oA.xa];
        A: if (ie = i, tA = l, iA = f, KA = oA.gb[0], NA = oA.Ja, ue = oA.xa, se = tA[0], TA = !A(ie, se, "VP8 "), be = !A(ie, se, "VP8L"), e(ie != null), e(iA != null), e(NA != null), e(ue != null), 8 > iA[0]) tA = 7;
        else {
          if (TA || be) {
            if (ie = nA(ie, se + 4), 12 <= KA && ie > KA - 12) {
              tA = 3;
              break A;
            }
            if (BA && ie > iA[0] - 8) {
              tA = 7;
              break A;
            }
            NA[0] = ie, tA[0] += 8, iA[0] -= 8, ue[0] = be;
          } else ue[0] = 5 <= iA[0] && ie[se + 0] == 47 && !(ie[se + 4] >> 5), NA[0] = iA[0];
          tA = 0;
        }
        if (f = f[0], oA.Ja = oA.Ja[0], oA.xa = oA.xa[0], l = l[0], tA != 0) break;
        if (4294967286 < oA.Ja) return 3;
        if (S == null || EA || (S[0] = oA.xa ? 2 : 1), x = [x], MA = [MA], oA.xa) {
          if (5 > f) {
            tA = 7;
            break;
          }
          S = x, BA = MA, EA = L, i == null || 5 > f ? i = 0 : 5 <= f && i[l + 0] == 47 && !(i[l + 4] >> 5) ? (iA = [0], ie = [0], KA = [0], z(NA = new b(), i, l, f), qA(NA, iA, ie, KA) ? (S != null && (S[0] = iA[0]), BA != null && (BA[0] = ie[0]), EA != null && (EA[0] = KA[0]), i = 1) : i = 0) : i = 0;
        } else {
          if (10 > f) {
            tA = 7;
            break;
          }
          S = MA, i == null || 10 > f || !ya(i, l + 3, f - 3) ? i = 0 : (BA = i[l + 0] | i[l + 1] << 8 | i[l + 2] << 16, EA = 16383 & (i[l + 7] << 8 | i[l + 6]), i = 16383 & (i[l + 9] << 8 | i[l + 8]), 1 & BA || 3 < (BA >> 1 & 7) || !(BA >> 4 & 1) || BA >> 5 >= oA.Ja || !EA || !i ? i = 0 : (x && (x[0] = EA), S && (S[0] = i), i = 1));
        }
        if (!i || (x = x[0], MA = MA[0], pA && (M[0] != x || eA[0] != MA))) return 3;
        H != null && (H[0] = oA, H.offset = l - H.w, e(4294967286 > l - H.w), e(H.offset == H.ha - f));
        break;
      }
      return tA == 0 || tA == 7 && pA && H == null ? (L != null && (L[0] |= oA.na != null && 0 < oA.na.length), B != null && (B[0] = x), y != null && (y[0] = MA), 0) : tA;
    }
    function Ti(i, l, f) {
      var B = l.width, y = l.height, L = 0, x = 0, S = B, H = y;
      if (l.Da = i != null && 0 < i.Da, l.Da && (S = i.cd, H = i.bd, L = i.v, x = i.j, 11 > f || (L &= -2, x &= -2), 0 > L || 0 > x || 0 >= S || 0 >= H || L + S > B || x + H > y)) return 0;
      if (l.v = L, l.j = x, l.va = L + S, l.o = x + H, l.U = S, l.T = H, l.da = i != null && 0 < i.da, l.da) {
        if (!CA(S, H, f = [i.ib], L = [i.hb])) return 0;
        l.ib = f[0], l.hb = L[0];
      }
      return l.ob = i != null && i.ob, l.Kb = i == null || !i.Sd, l.da && (l.ob = l.ib < 3 * B / 4 && l.hb < 3 * y / 4, l.Kb = 0), 1;
    }
    function Ni(i) {
      if (i == null) return 2;
      if (11 > i.S) {
        var l = i.f.RGBA;
        l.fb += (i.height - 1) * l.A, l.A = -l.A;
      } else l = i.f.kb, i = i.height, l.O += (i - 1) * l.fa, l.fa = -l.fa, l.N += (i - 1 >> 1) * l.Ab, l.Ab = -l.Ab, l.W += (i - 1 >> 1) * l.Db, l.Db = -l.Db, l.F != null && (l.J += (i - 1) * l.lb, l.lb = -l.lb);
      return 0;
    }
    function Ms(i, l, f, B) {
      if (B == null || 0 >= i || 0 >= l) return 2;
      if (f != null) {
        if (f.Da) {
          var y = f.cd, L = f.bd, x = -2 & f.v, S = -2 & f.j;
          if (0 > x || 0 > S || 0 >= y || 0 >= L || x + y > i || S + L > l) return 2;
          i = y, l = L;
        }
        if (f.da) {
          if (!CA(i, l, y = [f.ib], L = [f.hb])) return 2;
          i = y[0], l = L[0];
        }
      }
      B.width = i, B.height = l;
      A: {
        var H = B.width, M = B.height;
        if (i = B.S, 0 >= H || 0 >= M || !(i >= Ga && 13 > i)) i = 2;
        else {
          if (0 >= B.Rd && B.sd == null) {
            x = L = y = l = 0;
            var eA = (S = H * Ru[i]) * M;
            if (11 > i || (L = (M + 1) / 2 * (l = (H + 1) / 2), i == 12 && (x = (y = H) * M)), (M = s(eA + 2 * L + x)) == null) {
              i = 1;
              break A;
            }
            B.sd = M, 11 > i ? ((H = B.f.RGBA).eb = M, H.fb = 0, H.A = S, H.size = eA) : ((H = B.f.kb).y = M, H.O = 0, H.fa = S, H.Fd = eA, H.f = M, H.N = 0 + eA, H.Ab = l, H.Cd = L, H.ea = M, H.W = 0 + eA + L, H.Db = l, H.Ed = L, i == 12 && (H.F = M, H.J = 0 + eA + 2 * L), H.Tc = x, H.lb = y);
          }
          if (l = 1, y = B.S, L = B.width, x = B.height, y >= Ga && 13 > y) if (11 > y) i = B.f.RGBA, l &= (S = Math.abs(i.A)) * (x - 1) + L <= i.size, l &= S >= L * Ru[y], l &= i.eb != null;
          else {
            i = B.f.kb, S = (L + 1) / 2, eA = (x + 1) / 2, H = Math.abs(i.fa), M = Math.abs(i.Ab);
            var pA = Math.abs(i.Db), BA = Math.abs(i.lb), oA = BA * (x - 1) + L;
            l &= H * (x - 1) + L <= i.Fd, l &= M * (eA - 1) + S <= i.Cd, l = (l &= pA * (eA - 1) + S <= i.Ed) & H >= L & M >= S & pA >= S, l &= i.y != null, l &= i.f != null, l &= i.ea != null, y == 12 && (l &= BA >= L, l &= oA <= i.Tc, l &= i.F != null);
          }
          else l = 0;
          i = l ? 0 : 2;
        }
      }
      return i != 0 || f != null && f.fd && (i = Ni(B)), i;
    }
    var Gt = 64, Ps = [0, 1, 3, 7, 15, 31, 63, 127, 255, 511, 1023, 2047, 4095, 8191, 16383, 32767, 65535, 131071, 262143, 524287, 1048575, 2097151, 4194303, 8388607, 16777215], Os = 24, Rs = 32, _i = 8, fr = [0, 0, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7];
    HA("Predictor0", "PredictorAdd0"), O.Predictor0 = function() {
      return 4278190080;
    }, O.Predictor1 = function(i) {
      return i;
    }, O.Predictor2 = function(i, l, f) {
      return l[f + 0];
    }, O.Predictor3 = function(i, l, f) {
      return l[f + 1];
    }, O.Predictor4 = function(i, l, f) {
      return l[f - 1];
    }, O.Predictor5 = function(i, l, f) {
      return OA(OA(i, l[f + 1]), l[f + 0]);
    }, O.Predictor6 = function(i, l, f) {
      return OA(i, l[f - 1]);
    }, O.Predictor7 = function(i, l, f) {
      return OA(i, l[f + 0]);
    }, O.Predictor8 = function(i, l, f) {
      return OA(l[f - 1], l[f + 0]);
    }, O.Predictor9 = function(i, l, f) {
      return OA(l[f + 0], l[f + 1]);
    }, O.Predictor10 = function(i, l, f) {
      return OA(OA(i, l[f - 1]), OA(l[f + 0], l[f + 1]));
    }, O.Predictor11 = function(i, l, f) {
      var B = l[f + 0];
      return 0 >= bA(B >> 24 & 255, i >> 24 & 255, (l = l[f - 1]) >> 24 & 255) + bA(B >> 16 & 255, i >> 16 & 255, l >> 16 & 255) + bA(B >> 8 & 255, i >> 8 & 255, l >> 8 & 255) + bA(255 & B, 255 & i, 255 & l) ? B : i;
    }, O.Predictor12 = function(i, l, f) {
      var B = l[f + 0];
      return (ZA((i >> 24 & 255) + (B >> 24 & 255) - ((l = l[f - 1]) >> 24 & 255)) << 24 | ZA((i >> 16 & 255) + (B >> 16 & 255) - (l >> 16 & 255)) << 16 | ZA((i >> 8 & 255) + (B >> 8 & 255) - (l >> 8 & 255)) << 8 | ZA((255 & i) + (255 & B) - (255 & l))) >>> 0;
    }, O.Predictor13 = function(i, l, f) {
      var B = l[f - 1];
      return (sA((i = OA(i, l[f + 0])) >> 24 & 255, B >> 24 & 255) << 24 | sA(i >> 16 & 255, B >> 16 & 255) << 16 | sA(i >> 8 & 255, B >> 8 & 255) << 8 | sA(i >> 0 & 255, B >> 0 & 255)) >>> 0;
    };
    var Ol = O.PredictorAdd0;
    O.PredictorAdd1 = PA, HA("Predictor2", "PredictorAdd2"), HA("Predictor3", "PredictorAdd3"), HA("Predictor4", "PredictorAdd4"), HA("Predictor5", "PredictorAdd5"), HA("Predictor6", "PredictorAdd6"), HA("Predictor7", "PredictorAdd7"), HA("Predictor8", "PredictorAdd8"), HA("Predictor9", "PredictorAdd9"), HA("Predictor10", "PredictorAdd10"), HA("Predictor11", "PredictorAdd11"), HA("Predictor12", "PredictorAdd12"), HA("Predictor13", "PredictorAdd13");
    var Mi = O.PredictorAdd2;
    ce("ColorIndexInverseTransform", "MapARGB", "32b", function(i) {
      return i >> 8 & 255;
    }, function(i) {
      return i;
    }), ce("VP8LColorIndexInverseTransformAlpha", "MapAlpha", "8b", function(i) {
      return i;
    }, function(i) {
      return i >> 8 & 255;
    });
    var Ma, kr = O.ColorIndexInverseTransform, Ks = O.MapARGB, Pa = O.VP8LColorIndexInverseTransformAlpha, Oa = O.MapAlpha, Hn = O.VP8LPredictorsAdd = [];
    Hn.length = 16, (O.VP8LPredictors = []).length = 16, (O.VP8LPredictorsAdd_C = []).length = 16, (O.VP8LPredictors_C = []).length = 16;
    var us, dr, sr, Tn, Bn, wn, Vs, vn, Ct, Pi, ir, Hr, Gs, Ra, Oi, fs, ds, Nn, hs, js, gs, _n, Ri, Tr, Nr, lt, ct, bt, Ht = s(511), mn = s(2041), Ki = s(225), qs = s(767), Ka = 0, Rl = mn, Va = Ki, Fr = qs, _r = Ht, Ga = 0, ja = 1, Iu = 2, qa = 3, Wa = 4, Kl = 5, Su = 6, Vl = 7, Gl = 8, Xa = 9, jl = 10, rg = [2, 3, 7], ng = [3, 3, 11], Du = [280, 256, 256, 256, 40], sg = [0, 1, 1, 1, 0], ig = [17, 18, 0, 1, 2, 3, 4, 5, 16, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15], ag = [24, 7, 23, 25, 40, 6, 39, 41, 22, 26, 38, 42, 56, 5, 55, 57, 21, 27, 54, 58, 37, 43, 72, 4, 71, 73, 20, 28, 53, 59, 70, 74, 36, 44, 88, 69, 75, 52, 60, 3, 87, 89, 19, 29, 86, 90, 35, 45, 68, 76, 85, 91, 51, 61, 104, 2, 103, 105, 18, 30, 102, 106, 34, 46, 84, 92, 67, 77, 101, 107, 50, 62, 120, 1, 119, 121, 83, 93, 17, 31, 100, 108, 66, 78, 118, 122, 33, 47, 117, 123, 49, 63, 99, 109, 82, 94, 0, 116, 124, 65, 79, 16, 32, 98, 110, 48, 115, 125, 81, 95, 64, 114, 126, 97, 111, 80, 113, 127, 96, 112], og = [2954, 2956, 2958, 2962, 2970, 2986, 3018, 3082, 3212, 3468, 3980, 5004], lg = 8, ql = [4, 5, 6, 7, 8, 9, 10, 10, 11, 12, 13, 14, 15, 16, 17, 17, 18, 19, 20, 20, 21, 21, 22, 22, 23, 23, 24, 25, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 91, 93, 95, 96, 98, 100, 101, 102, 104, 106, 108, 110, 112, 114, 116, 118, 122, 124, 126, 128, 130, 132, 134, 136, 138, 140, 143, 145, 148, 151, 154, 157], Wl = [4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 60, 62, 64, 66, 68, 70, 72, 74, 76, 78, 80, 82, 84, 86, 88, 90, 92, 94, 96, 98, 100, 102, 104, 106, 108, 110, 112, 114, 116, 119, 122, 125, 128, 131, 134, 137, 140, 143, 146, 149, 152, 155, 158, 161, 164, 167, 170, 173, 177, 181, 185, 189, 193, 197, 201, 205, 209, 213, 217, 221, 225, 229, 234, 239, 245, 249, 254, 259, 264, 269, 274, 279, 284], Vi = null, cg = [[173, 148, 140, 0], [176, 155, 140, 135, 0], [180, 157, 141, 134, 130, 0], [254, 254, 243, 230, 196, 177, 153, 140, 133, 130, 129, 0]], ug = [0, 1, 4, 8, 5, 2, 3, 6, 9, 12, 13, 10, 7, 11, 14, 15], ku = [-0, 1, -1, 2, -2, 3, 4, 6, -3, 5, -4, -5, -6, 7, -7, 8, -8, -9], fg = [[[[128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128], [128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128], [128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128]], [[253, 136, 254, 255, 228, 219, 128, 128, 128, 128, 128], [189, 129, 242, 255, 227, 213, 255, 219, 128, 128, 128], [106, 126, 227, 252, 214, 209, 255, 255, 128, 128, 128]], [[1, 98, 248, 255, 236, 226, 255, 255, 128, 128, 128], [181, 133, 238, 254, 221, 234, 255, 154, 128, 128, 128], [78, 134, 202, 247, 198, 180, 255, 219, 128, 128, 128]], [[1, 185, 249, 255, 243, 255, 128, 128, 128, 128, 128], [184, 150, 247, 255, 236, 224, 128, 128, 128, 128, 128], [77, 110, 216, 255, 236, 230, 128, 128, 128, 128, 128]], [[1, 101, 251, 255, 241, 255, 128, 128, 128, 128, 128], [170, 139, 241, 252, 236, 209, 255, 255, 128, 128, 128], [37, 116, 196, 243, 228, 255, 255, 255, 128, 128, 128]], [[1, 204, 254, 255, 245, 255, 128, 128, 128, 128, 128], [207, 160, 250, 255, 238, 128, 128, 128, 128, 128, 128], [102, 103, 231, 255, 211, 171, 128, 128, 128, 128, 128]], [[1, 152, 252, 255, 240, 255, 128, 128, 128, 128, 128], [177, 135, 243, 255, 234, 225, 128, 128, 128, 128, 128], [80, 129, 211, 255, 194, 224, 128, 128, 128, 128, 128]], [[1, 1, 255, 128, 128, 128, 128, 128, 128, 128, 128], [246, 1, 255, 128, 128, 128, 128, 128, 128, 128, 128], [255, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128]]], [[[198, 35, 237, 223, 193, 187, 162, 160, 145, 155, 62], [131, 45, 198, 221, 172, 176, 220, 157, 252, 221, 1], [68, 47, 146, 208, 149, 167, 221, 162, 255, 223, 128]], [[1, 149, 241, 255, 221, 224, 255, 255, 128, 128, 128], [184, 141, 234, 253, 222, 220, 255, 199, 128, 128, 128], [81, 99, 181, 242, 176, 190, 249, 202, 255, 255, 128]], [[1, 129, 232, 253, 214, 197, 242, 196, 255, 255, 128], [99, 121, 210, 250, 201, 198, 255, 202, 128, 128, 128], [23, 91, 163, 242, 170, 187, 247, 210, 255, 255, 128]], [[1, 200, 246, 255, 234, 255, 128, 128, 128, 128, 128], [109, 178, 241, 255, 231, 245, 255, 255, 128, 128, 128], [44, 130, 201, 253, 205, 192, 255, 255, 128, 128, 128]], [[1, 132, 239, 251, 219, 209, 255, 165, 128, 128, 128], [94, 136, 225, 251, 218, 190, 255, 255, 128, 128, 128], [22, 100, 174, 245, 186, 161, 255, 199, 128, 128, 128]], [[1, 182, 249, 255, 232, 235, 128, 128, 128, 128, 128], [124, 143, 241, 255, 227, 234, 128, 128, 128, 128, 128], [35, 77, 181, 251, 193, 211, 255, 205, 128, 128, 128]], [[1, 157, 247, 255, 236, 231, 255, 255, 128, 128, 128], [121, 141, 235, 255, 225, 227, 255, 255, 128, 128, 128], [45, 99, 188, 251, 195, 217, 255, 224, 128, 128, 128]], [[1, 1, 251, 255, 213, 255, 128, 128, 128, 128, 128], [203, 1, 248, 255, 255, 128, 128, 128, 128, 128, 128], [137, 1, 177, 255, 224, 255, 128, 128, 128, 128, 128]]], [[[253, 9, 248, 251, 207, 208, 255, 192, 128, 128, 128], [175, 13, 224, 243, 193, 185, 249, 198, 255, 255, 128], [73, 17, 171, 221, 161, 179, 236, 167, 255, 234, 128]], [[1, 95, 247, 253, 212, 183, 255, 255, 128, 128, 128], [239, 90, 244, 250, 211, 209, 255, 255, 128, 128, 128], [155, 77, 195, 248, 188, 195, 255, 255, 128, 128, 128]], [[1, 24, 239, 251, 218, 219, 255, 205, 128, 128, 128], [201, 51, 219, 255, 196, 186, 128, 128, 128, 128, 128], [69, 46, 190, 239, 201, 218, 255, 228, 128, 128, 128]], [[1, 191, 251, 255, 255, 128, 128, 128, 128, 128, 128], [223, 165, 249, 255, 213, 255, 128, 128, 128, 128, 128], [141, 124, 248, 255, 255, 128, 128, 128, 128, 128, 128]], [[1, 16, 248, 255, 255, 128, 128, 128, 128, 128, 128], [190, 36, 230, 255, 236, 255, 128, 128, 128, 128, 128], [149, 1, 255, 128, 128, 128, 128, 128, 128, 128, 128]], [[1, 226, 255, 128, 128, 128, 128, 128, 128, 128, 128], [247, 192, 255, 128, 128, 128, 128, 128, 128, 128, 128], [240, 128, 255, 128, 128, 128, 128, 128, 128, 128, 128]], [[1, 134, 252, 255, 255, 128, 128, 128, 128, 128, 128], [213, 62, 250, 255, 255, 128, 128, 128, 128, 128, 128], [55, 93, 255, 128, 128, 128, 128, 128, 128, 128, 128]], [[128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128], [128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128], [128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128]]], [[[202, 24, 213, 235, 186, 191, 220, 160, 240, 175, 255], [126, 38, 182, 232, 169, 184, 228, 174, 255, 187, 128], [61, 46, 138, 219, 151, 178, 240, 170, 255, 216, 128]], [[1, 112, 230, 250, 199, 191, 247, 159, 255, 255, 128], [166, 109, 228, 252, 211, 215, 255, 174, 128, 128, 128], [39, 77, 162, 232, 172, 180, 245, 178, 255, 255, 128]], [[1, 52, 220, 246, 198, 199, 249, 220, 255, 255, 128], [124, 74, 191, 243, 183, 193, 250, 221, 255, 255, 128], [24, 71, 130, 219, 154, 170, 243, 182, 255, 255, 128]], [[1, 182, 225, 249, 219, 240, 255, 224, 128, 128, 128], [149, 150, 226, 252, 216, 205, 255, 171, 128, 128, 128], [28, 108, 170, 242, 183, 194, 254, 223, 255, 255, 128]], [[1, 81, 230, 252, 204, 203, 255, 192, 128, 128, 128], [123, 102, 209, 247, 188, 196, 255, 233, 128, 128, 128], [20, 95, 153, 243, 164, 173, 255, 203, 128, 128, 128]], [[1, 222, 248, 255, 216, 213, 128, 128, 128, 128, 128], [168, 175, 246, 252, 235, 205, 255, 255, 128, 128, 128], [47, 116, 215, 255, 211, 212, 255, 255, 128, 128, 128]], [[1, 121, 236, 253, 212, 214, 255, 255, 128, 128, 128], [141, 84, 213, 252, 201, 202, 255, 219, 128, 128, 128], [42, 80, 160, 240, 162, 185, 255, 205, 128, 128, 128]], [[1, 1, 255, 128, 128, 128, 128, 128, 128, 128, 128], [244, 1, 255, 128, 128, 128, 128, 128, 128, 128, 128], [238, 1, 255, 128, 128, 128, 128, 128, 128, 128, 128]]]], dg = [[[231, 120, 48, 89, 115, 113, 120, 152, 112], [152, 179, 64, 126, 170, 118, 46, 70, 95], [175, 69, 143, 80, 85, 82, 72, 155, 103], [56, 58, 10, 171, 218, 189, 17, 13, 152], [114, 26, 17, 163, 44, 195, 21, 10, 173], [121, 24, 80, 195, 26, 62, 44, 64, 85], [144, 71, 10, 38, 171, 213, 144, 34, 26], [170, 46, 55, 19, 136, 160, 33, 206, 71], [63, 20, 8, 114, 114, 208, 12, 9, 226], [81, 40, 11, 96, 182, 84, 29, 16, 36]], [[134, 183, 89, 137, 98, 101, 106, 165, 148], [72, 187, 100, 130, 157, 111, 32, 75, 80], [66, 102, 167, 99, 74, 62, 40, 234, 128], [41, 53, 9, 178, 241, 141, 26, 8, 107], [74, 43, 26, 146, 73, 166, 49, 23, 157], [65, 38, 105, 160, 51, 52, 31, 115, 128], [104, 79, 12, 27, 217, 255, 87, 17, 7], [87, 68, 71, 44, 114, 51, 15, 186, 23], [47, 41, 14, 110, 182, 183, 21, 17, 194], [66, 45, 25, 102, 197, 189, 23, 18, 22]], [[88, 88, 147, 150, 42, 46, 45, 196, 205], [43, 97, 183, 117, 85, 38, 35, 179, 61], [39, 53, 200, 87, 26, 21, 43, 232, 171], [56, 34, 51, 104, 114, 102, 29, 93, 77], [39, 28, 85, 171, 58, 165, 90, 98, 64], [34, 22, 116, 206, 23, 34, 43, 166, 73], [107, 54, 32, 26, 51, 1, 81, 43, 31], [68, 25, 106, 22, 64, 171, 36, 225, 114], [34, 19, 21, 102, 132, 188, 16, 76, 124], [62, 18, 78, 95, 85, 57, 50, 48, 51]], [[193, 101, 35, 159, 215, 111, 89, 46, 111], [60, 148, 31, 172, 219, 228, 21, 18, 111], [112, 113, 77, 85, 179, 255, 38, 120, 114], [40, 42, 1, 196, 245, 209, 10, 25, 109], [88, 43, 29, 140, 166, 213, 37, 43, 154], [61, 63, 30, 155, 67, 45, 68, 1, 209], [100, 80, 8, 43, 154, 1, 51, 26, 71], [142, 78, 78, 16, 255, 128, 34, 197, 171], [41, 40, 5, 102, 211, 183, 4, 1, 221], [51, 50, 17, 168, 209, 192, 23, 25, 82]], [[138, 31, 36, 171, 27, 166, 38, 44, 229], [67, 87, 58, 169, 82, 115, 26, 59, 179], [63, 59, 90, 180, 59, 166, 93, 73, 154], [40, 40, 21, 116, 143, 209, 34, 39, 175], [47, 15, 16, 183, 34, 223, 49, 45, 183], [46, 17, 33, 183, 6, 98, 15, 32, 183], [57, 46, 22, 24, 128, 1, 54, 17, 37], [65, 32, 73, 115, 28, 128, 23, 128, 205], [40, 3, 9, 115, 51, 192, 18, 6, 223], [87, 37, 9, 115, 59, 77, 64, 21, 47]], [[104, 55, 44, 218, 9, 54, 53, 130, 226], [64, 90, 70, 205, 40, 41, 23, 26, 57], [54, 57, 112, 184, 5, 41, 38, 166, 213], [30, 34, 26, 133, 152, 116, 10, 32, 134], [39, 19, 53, 221, 26, 114, 32, 73, 255], [31, 9, 65, 234, 2, 15, 1, 118, 73], [75, 32, 12, 51, 192, 255, 160, 43, 51], [88, 31, 35, 67, 102, 85, 55, 186, 85], [56, 21, 23, 111, 59, 205, 45, 37, 192], [55, 38, 70, 124, 73, 102, 1, 34, 98]], [[125, 98, 42, 88, 104, 85, 117, 175, 82], [95, 84, 53, 89, 128, 100, 113, 101, 45], [75, 79, 123, 47, 51, 128, 81, 171, 1], [57, 17, 5, 71, 102, 57, 53, 41, 49], [38, 33, 13, 121, 57, 73, 26, 1, 85], [41, 10, 67, 138, 77, 110, 90, 47, 114], [115, 21, 2, 10, 102, 255, 166, 23, 6], [101, 29, 16, 10, 85, 128, 101, 196, 26], [57, 18, 10, 102, 102, 213, 34, 20, 43], [117, 20, 15, 36, 163, 128, 68, 1, 26]], [[102, 61, 71, 37, 34, 53, 31, 243, 192], [69, 60, 71, 38, 73, 119, 28, 222, 37], [68, 45, 128, 34, 1, 47, 11, 245, 171], [62, 17, 19, 70, 146, 85, 55, 62, 70], [37, 43, 37, 154, 100, 163, 85, 160, 1], [63, 9, 92, 136, 28, 64, 32, 201, 85], [75, 15, 9, 9, 64, 255, 184, 119, 16], [86, 6, 28, 5, 64, 255, 25, 248, 1], [56, 8, 17, 132, 137, 255, 55, 116, 128], [58, 15, 20, 82, 135, 57, 26, 121, 40]], [[164, 50, 31, 137, 154, 133, 25, 35, 218], [51, 103, 44, 131, 131, 123, 31, 6, 158], [86, 40, 64, 135, 148, 224, 45, 183, 128], [22, 26, 17, 131, 240, 154, 14, 1, 209], [45, 16, 21, 91, 64, 222, 7, 1, 197], [56, 21, 39, 155, 60, 138, 23, 102, 213], [83, 12, 13, 54, 192, 255, 68, 47, 28], [85, 26, 85, 85, 128, 128, 32, 146, 171], [18, 11, 7, 63, 144, 171, 4, 4, 246], [35, 27, 10, 146, 174, 171, 12, 26, 128]], [[190, 80, 35, 99, 180, 80, 126, 54, 45], [85, 126, 47, 87, 176, 51, 41, 20, 32], [101, 75, 128, 139, 118, 146, 116, 128, 85], [56, 41, 15, 176, 236, 85, 37, 9, 62], [71, 30, 17, 119, 118, 255, 17, 18, 138], [101, 38, 60, 138, 55, 70, 43, 26, 142], [146, 36, 19, 30, 171, 255, 97, 27, 20], [138, 45, 61, 62, 219, 1, 81, 188, 64], [32, 41, 20, 117, 151, 142, 20, 21, 163], [112, 19, 12, 61, 195, 128, 48, 4, 24]]], hg = [[[[255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255], [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255], [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255]], [[176, 246, 255, 255, 255, 255, 255, 255, 255, 255, 255], [223, 241, 252, 255, 255, 255, 255, 255, 255, 255, 255], [249, 253, 253, 255, 255, 255, 255, 255, 255, 255, 255]], [[255, 244, 252, 255, 255, 255, 255, 255, 255, 255, 255], [234, 254, 254, 255, 255, 255, 255, 255, 255, 255, 255], [253, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255]], [[255, 246, 254, 255, 255, 255, 255, 255, 255, 255, 255], [239, 253, 254, 255, 255, 255, 255, 255, 255, 255, 255], [254, 255, 254, 255, 255, 255, 255, 255, 255, 255, 255]], [[255, 248, 254, 255, 255, 255, 255, 255, 255, 255, 255], [251, 255, 254, 255, 255, 255, 255, 255, 255, 255, 255], [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255]], [[255, 253, 254, 255, 255, 255, 255, 255, 255, 255, 255], [251, 254, 254, 255, 255, 255, 255, 255, 255, 255, 255], [254, 255, 254, 255, 255, 255, 255, 255, 255, 255, 255]], [[255, 254, 253, 255, 254, 255, 255, 255, 255, 255, 255], [250, 255, 254, 255, 254, 255, 255, 255, 255, 255, 255], [254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255]], [[255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255], [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255], [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255]]], [[[217, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255], [225, 252, 241, 253, 255, 255, 254, 255, 255, 255, 255], [234, 250, 241, 250, 253, 255, 253, 254, 255, 255, 255]], [[255, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255], [223, 254, 254, 255, 255, 255, 255, 255, 255, 255, 255], [238, 253, 254, 254, 255, 255, 255, 255, 255, 255, 255]], [[255, 248, 254, 255, 255, 255, 255, 255, 255, 255, 255], [249, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255], [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255]], [[255, 253, 255, 255, 255, 255, 255, 255, 255, 255, 255], [247, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255], [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255]], [[255, 253, 254, 255, 255, 255, 255, 255, 255, 255, 255], [252, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255], [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255]], [[255, 254, 254, 255, 255, 255, 255, 255, 255, 255, 255], [253, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255], [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255]], [[255, 254, 253, 255, 255, 255, 255, 255, 255, 255, 255], [250, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255], [254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255]], [[255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255], [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255], [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255]]], [[[186, 251, 250, 255, 255, 255, 255, 255, 255, 255, 255], [234, 251, 244, 254, 255, 255, 255, 255, 255, 255, 255], [251, 251, 243, 253, 254, 255, 254, 255, 255, 255, 255]], [[255, 253, 254, 255, 255, 255, 255, 255, 255, 255, 255], [236, 253, 254, 255, 255, 255, 255, 255, 255, 255, 255], [251, 253, 253, 254, 254, 255, 255, 255, 255, 255, 255]], [[255, 254, 254, 255, 255, 255, 255, 255, 255, 255, 255], [254, 254, 254, 255, 255, 255, 255, 255, 255, 255, 255], [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255]], [[255, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255], [254, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255], [254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255]], [[255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255], [254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255], [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255]], [[255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255], [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255], [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255]], [[255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255], [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255], [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255]], [[255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255], [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255], [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255]]], [[[248, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255], [250, 254, 252, 254, 255, 255, 255, 255, 255, 255, 255], [248, 254, 249, 253, 255, 255, 255, 255, 255, 255, 255]], [[255, 253, 253, 255, 255, 255, 255, 255, 255, 255, 255], [246, 253, 253, 255, 255, 255, 255, 255, 255, 255, 255], [252, 254, 251, 254, 254, 255, 255, 255, 255, 255, 255]], [[255, 254, 252, 255, 255, 255, 255, 255, 255, 255, 255], [248, 254, 253, 255, 255, 255, 255, 255, 255, 255, 255], [253, 255, 254, 254, 255, 255, 255, 255, 255, 255, 255]], [[255, 251, 254, 255, 255, 255, 255, 255, 255, 255, 255], [245, 251, 254, 255, 255, 255, 255, 255, 255, 255, 255], [253, 253, 254, 255, 255, 255, 255, 255, 255, 255, 255]], [[255, 251, 253, 255, 255, 255, 255, 255, 255, 255, 255], [252, 253, 254, 255, 255, 255, 255, 255, 255, 255, 255], [255, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255]], [[255, 252, 255, 255, 255, 255, 255, 255, 255, 255, 255], [249, 255, 254, 255, 255, 255, 255, 255, 255, 255, 255], [255, 255, 254, 255, 255, 255, 255, 255, 255, 255, 255]], [[255, 255, 253, 255, 255, 255, 255, 255, 255, 255, 255], [250, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255], [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255]], [[255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255], [254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255], [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255]]]], gg = [0, 1, 2, 3, 6, 4, 5, 6, 6, 6, 6, 6, 6, 6, 6, 7, 0], Mn = [], Xr = [], yn = [], pg = 1, Hu = 2, Pn = [], Mr = [];
    SA("UpsampleRgbLinePair", Ge, 3), SA("UpsampleBgrLinePair", gt, 3), SA("UpsampleRgbaLinePair", Wr, 4), SA("UpsampleBgraLinePair", Mt, 4), SA("UpsampleArgbLinePair", Yt, 4), SA("UpsampleRgba4444LinePair", It, 2), SA("UpsampleRgb565LinePair", Bt, 2);
    var Bg = O.UpsampleRgbLinePair, wg = O.UpsampleBgrLinePair, Tu = O.UpsampleRgbaLinePair, Nu = O.UpsampleBgraLinePair, _u = O.UpsampleArgbLinePair, Mu = O.UpsampleRgba4444LinePair, vg = O.UpsampleRgb565LinePair, za = 16, Ya = 1 << za - 1, Gi = -227, Xl = 482, mg = 6, Pu = 0, yg = s(256), Cg = s(256), bg = s(256), Fg = s(256), Qg = s(Xl - Gi), Ug = s(Xl - Gi);
    sn("YuvToRgbRow", Ge, 3), sn("YuvToBgrRow", gt, 3), sn("YuvToRgbaRow", Wr, 4), sn("YuvToBgraRow", Mt, 4), sn("YuvToArgbRow", Yt, 4), sn("YuvToRgba4444Row", It, 2), sn("YuvToRgb565Row", Bt, 2);
    var Ou = [0, 4, 8, 12, 128, 132, 136, 140, 256, 260, 264, 268, 384, 388, 392, 396], Ja = [0, 2, 8], Lg = [8, 7, 6, 4, 4, 2, 2, 2, 1, 1, 1, 1], Eg = 1;
    this.WebPDecodeRGBA = function(i, l, f, B, y) {
      var L = ja, x = new Ts(), S = new _A();
      x.ba = S, S.S = L, S.width = [S.width], S.height = [S.height];
      var H = S.width, M = S.height, eA = new Ae();
      if (eA == null || i == null) var pA = 2;
      else e(eA != null), pA = _s(i, l, f, eA.width, eA.height, eA.Pd, eA.Qd, eA.format, null);
      if (pA != 0 ? H = 0 : (H != null && (H[0] = eA.width[0]), M != null && (M[0] = eA.height[0]), H = 1), H) {
        S.width = S.width[0], S.height = S.height[0], B != null && (B[0] = S.width), y != null && (y[0] = S.height);
        A: {
          if (B = new Es(), (y = new xi()).data = i, y.w = l, y.ha = f, y.kd = 1, l = [0], e(y != null), ((i = _s(y.data, y.w, y.ha, null, null, null, l, null, y)) == 0 || i == 7) && l[0] && (i = 4), (l = i) == 0) {
            if (e(x != null), B.data = y.data, B.w = y.w + y.offset, B.ha = y.ha - y.offset, B.put = $A, B.ac = ve, B.bc = ee, B.ma = x, y.xa) {
              if ((i = vA()) == null) {
                x = 1;
                break A;
              }
              if (function(BA, oA) {
                var MA = [0], EA = [0], tA = [0];
                e: for (; ; ) {
                  if (BA == null) return 0;
                  if (oA == null) return BA.a = 2, 0;
                  if (BA.l = oA, BA.a = 0, z(BA.m, oA.data, oA.w, oA.ha), !qA(BA.m, MA, EA, tA)) {
                    BA.a = 3;
                    break e;
                  }
                  if (BA.xb = Hu, oA.width = MA[0], oA.height = EA[0], !xA(MA[0], EA[0], 1, BA, null)) break e;
                  return 1;
                }
                return e(BA.a != 0), 0;
              }(i, B)) {
                if (B = (l = Ms(B.width, B.height, x.Oa, x.ba)) == 0) {
                  e: {
                    B = i;
                    t: for (; ; ) {
                      if (B == null) {
                        B = 0;
                        break e;
                      }
                      if (e(B.s.yc != null), e(B.s.Ya != null), e(0 < B.s.Wb), e((f = B.l) != null), e((y = f.ma) != null), B.xb != 0) {
                        if (B.ca = y.ba, B.tb = y.tb, e(B.ca != null), !Ti(y.Oa, f, qa)) {
                          B.a = 2;
                          break t;
                        }
                        if (!dA(B, f.width) || f.da) break t;
                        if ((f.da || Se(B.ca.S)) && fA(), 11 > B.ca.S || (alert("todo:WebPInitConvertARGBToYUV"), B.ca.f.kb.F != null && fA()), B.Pb && 0 < B.s.ua && B.s.vb.X == null && !UA(B.s.vb, B.s.Wa.Xa)) {
                          B.a = 1;
                          break t;
                        }
                        B.xb = 0;
                      }
                      if (!Vt(B, B.V, B.Ba, B.c, B.i, f.o, Gr)) break t;
                      y.Dc = B.Ma, B = 1;
                      break e;
                    }
                    e(B.a != 0), B = 0;
                  }
                  B = !B;
                }
                B && (l = i.a);
              } else l = i.a;
            } else {
              if ((i = new yl()) == null) {
                x = 1;
                break A;
              }
              if (i.Fa = y.na, i.P = y.P, i.qc = y.Sa, Ca(i, B)) {
                if ((l = Ms(B.width, B.height, x.Oa, x.ba)) == 0) {
                  if (i.Aa = 0, f = x.Oa, e((y = i) != null), f != null) {
                    if (0 < (H = 0 > (H = f.Md) ? 0 : 100 < H ? 255 : 255 * H / 100)) {
                      for (M = eA = 0; 4 > M; ++M) 12 > (pA = y.pb[M]).lc && (pA.ia = H * Lg[0 > pA.lc ? 0 : pA.lc] >> 3), eA |= pA.ia;
                      eA && (alert("todo:VP8InitRandom"), y.ia = 1);
                    }
                    y.Ga = f.Id, 100 < y.Ga ? y.Ga = 100 : 0 > y.Ga && (y.Ga = 0);
                  }
                  Cl(i, B) || (l = i.a);
                }
              } else l = i.a;
            }
            l == 0 && x.Oa != null && x.Oa.fd && (l = Ni(x.ba));
          }
          x = l;
        }
        L = x != 0 ? null : 11 > L ? S.f.RGBA.eb : S.f.kb.y;
      } else L = null;
      return L;
    };
    var Ru = [3, 4, 3, 4, 4, 2, 2, 4, 4, 4, 2, 1, 1];
  };
  function d(O, q) {
    for (var lA = "", I = 0; I < 4; I++) lA += String.fromCharCode(O[q++]);
    return lA;
  }
  function h(O, q) {
    return (O[q + 0] << 0 | O[q + 1] << 8 | O[q + 2] << 16) >>> 0;
  }
  function g(O, q) {
    return (O[q + 0] << 0 | O[q + 1] << 8 | O[q + 2] << 16 | O[q + 3] << 24) >>> 0;
  }
  new c();
  var w = [0], p = [0], m = [], F = new c(), D = t, v = function(O, q) {
    var lA = {}, I = 0, Q = !1, k = 0, U = 0;
    if (lA.frames = [], !/** @license
       * Copyright (c) 2017 Dominik Homberger
      Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
      The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
      THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
      https://webpjs.appspot.com
      WebPRiffParser dominikhlbg@gmail.com
      */
    function(T, _, j, $) {
      for (var uA = 0; uA < $; uA++) if (T[_ + uA] != j.charCodeAt(uA)) return !0;
      return !1;
    }(O, q, "RIFF", 4)) {
      for (g(O, q += 4), q += 8; q < O.length; ) {
        var R = d(O, q), X = g(O, q += 4);
        q += 4;
        var AA = X + (1 & X);
        switch (R) {
          case "VP8 ":
          case "VP8L":
            lA.frames[I] === void 0 && (lA.frames[I] = {}), (rA = lA.frames[I]).src_off = Q ? U : q - 8, rA.src_size = k + X + 8, I++, Q && (Q = !1, k = 0, U = 0);
            break;
          case "VP8X":
            (rA = lA.header = {}).feature_flags = O[q];
            var z = q + 4;
            rA.canvas_width = 1 + h(O, z), z += 3, rA.canvas_height = 1 + h(O, z), z += 3;
            break;
          case "ALPH":
            Q = !0, k = AA + 8, U = q - 8;
            break;
          case "ANIM":
            (rA = lA.header).bgcolor = g(O, q), z = q + 4, rA.loop_count = (QA = O)[(b = z) + 0] << 0 | QA[b + 1] << 8, z += 2;
            break;
          case "ANMF":
            var aA, rA;
            (rA = lA.frames[I] = {}).offset_x = 2 * h(O, q), q += 3, rA.offset_y = 2 * h(O, q), q += 3, rA.width = 1 + h(O, q), q += 3, rA.height = 1 + h(O, q), q += 3, rA.duration = h(O, q), q += 3, aA = O[q++], rA.dispose = 1 & aA, rA.blend = aA >> 1 & 1;
        }
        R != "ANMF" && (q += AA);
      }
      var QA, b;
      return lA;
    }
  }(D, 0);
  v.response = D, v.rgbaoutput = !0, v.dataurl = !1;
  var E = v.header ? v.header : null, P = v.frames ? v.frames : null;
  if (E) {
    E.loop_counter = E.loop_count, w = [E.canvas_height], p = [E.canvas_width];
    for (var V = 0; V < P.length && P[V].blend != 0; V++) ;
  }
  var J = P[0], Y = F.WebPDecodeRGBA(D, J.src_off, J.src_size, p, w);
  J.rgba = Y, J.imgwidth = p[0], J.imgheight = w[0];
  for (var W = 0; W < p[0] * w[0] * 4; W++) m[W] = Y[W];
  return this.width = p, this.height = w, this.data = m, this;
}
(function(t) {
  var e = function() {
    return typeof Vc == "function";
  }, A = function(w, p, m, F) {
    var D = 4, v = a;
    switch (F) {
      case t.image_compression.FAST:
        D = 1, v = s;
        break;
      case t.image_compression.MEDIUM:
        D = 6, v = o;
        break;
      case t.image_compression.SLOW:
        D = 9, v = c;
    }
    w = r(w, p, m, v);
    var E = Vc(w, { level: D });
    return t.__addimage__.arrayBufferToBinaryString(E);
  }, r = function(w, p, m, F) {
    for (var D, v, E, P = w.length / p, V = new Uint8Array(w.length + P), J = h(), Y = 0; Y < P; Y += 1) {
      if (E = Y * p, D = w.subarray(E, E + p), F) V.set(F(D, m, v), E + Y);
      else {
        for (var W, O = J.length, q = []; W < O; W += 1) q[W] = J[W](D, m, v);
        var lA = g(q.concat());
        V.set(q[lA], E + Y);
      }
      v = D;
    }
    return V;
  }, n = function(w) {
    var p = Array.apply([], w);
    return p.unshift(0), p;
  }, s = function(w, p) {
    var m, F = [], D = w.length;
    F[0] = 1;
    for (var v = 0; v < D; v += 1) m = w[v - p] || 0, F[v + 1] = w[v] - m + 256 & 255;
    return F;
  }, a = function(w, p, m) {
    var F, D = [], v = w.length;
    D[0] = 2;
    for (var E = 0; E < v; E += 1) F = m && m[E] || 0, D[E + 1] = w[E] - F + 256 & 255;
    return D;
  }, o = function(w, p, m) {
    var F, D, v = [], E = w.length;
    v[0] = 3;
    for (var P = 0; P < E; P += 1) F = w[P - p] || 0, D = m && m[P] || 0, v[P + 1] = w[P] + 256 - (F + D >>> 1) & 255;
    return v;
  }, c = function(w, p, m) {
    var F, D, v, E, P = [], V = w.length;
    P[0] = 4;
    for (var J = 0; J < V; J += 1) F = w[J - p] || 0, D = m && m[J] || 0, v = m && m[J - p] || 0, E = d(F, D, v), P[J + 1] = w[J] - E + 256 & 255;
    return P;
  }, d = function(w, p, m) {
    if (w === p && p === m) return w;
    var F = Math.abs(p - m), D = Math.abs(w - m), v = Math.abs(w + p - m - m);
    return F <= D && F <= v ? w : D <= v ? p : m;
  }, h = function() {
    return [n, s, a, o, c];
  }, g = function(w) {
    var p = w.map(function(m) {
      return m.reduce(function(F, D) {
        return F + Math.abs(D);
      }, 0);
    });
    return p.indexOf(Math.min.apply(null, p));
  };
  t.processPNG = function(w, p, m, F) {
    var D, v, E, P, V, J, Y, W, O, q, lA, I, Q, k, U, R = this.decode.FLATE_DECODE, X = "";
    if (this.__addimage__.isArrayBuffer(w) && (w = new Uint8Array(w)), this.__addimage__.isArrayBufferView(w)) {
      if (w = (E = new iw(w)).imgData, v = E.bits, D = E.colorSpace, V = E.colors, [4, 6].indexOf(E.colorType) !== -1) {
        if (E.bits === 8) {
          O = (W = E.pixelBitlength == 32 ? new Uint32Array(E.decodePixels().buffer) : E.pixelBitlength == 16 ? new Uint16Array(E.decodePixels().buffer) : new Uint8Array(E.decodePixels().buffer)).length, lA = new Uint8Array(O * E.colors), q = new Uint8Array(O);
          var AA, z = E.pixelBitlength - E.bits;
          for (k = 0, U = 0; k < O; k++) {
            for (Q = W[k], AA = 0; AA < z; ) lA[U++] = Q >>> AA & 255, AA += E.bits;
            q[k] = Q >>> AA & 255;
          }
        }
        if (E.bits === 16) {
          O = (W = new Uint32Array(E.decodePixels().buffer)).length, lA = new Uint8Array(O * (32 / E.pixelBitlength) * E.colors), q = new Uint8Array(O * (32 / E.pixelBitlength)), I = E.colors > 1, k = 0, U = 0;
          for (var aA = 0; k < O; ) Q = W[k++], lA[U++] = Q >>> 0 & 255, I && (lA[U++] = Q >>> 16 & 255, Q = W[k++], lA[U++] = Q >>> 0 & 255), q[aA++] = Q >>> 16 & 255;
          v = 8;
        }
        F !== t.image_compression.NONE && e() ? (w = A(lA, E.width * E.colors, E.colors, F), Y = A(q, E.width, 1, F)) : (w = lA, Y = q, R = void 0);
      }
      if (E.colorType === 3 && (D = this.color_spaces.INDEXED, J = E.palette, E.transparency.indexed)) {
        var rA = E.transparency.indexed, QA = 0;
        for (k = 0, O = rA.length; k < O; ++k) QA += rA[k];
        if ((QA /= 255) === O - 1 && rA.indexOf(0) !== -1) P = [rA.indexOf(0)];
        else if (QA !== O) {
          for (W = E.decodePixels(), q = new Uint8Array(W.length), k = 0, O = W.length; k < O; k++) q[k] = rA[W[k]];
          Y = A(q, E.width, 1);
        }
      }
      var b = function(T) {
        var _;
        switch (T) {
          case t.image_compression.FAST:
            _ = 11;
            break;
          case t.image_compression.MEDIUM:
            _ = 13;
            break;
          case t.image_compression.SLOW:
            _ = 14;
            break;
          default:
            _ = 12;
        }
        return _;
      }(F);
      return R === this.decode.FLATE_DECODE && (X = "/Predictor " + b + " "), X += "/Colors " + V + " /BitsPerComponent " + v + " /Columns " + E.width, (this.__addimage__.isArrayBuffer(w) || this.__addimage__.isArrayBufferView(w)) && (w = this.__addimage__.arrayBufferToBinaryString(w)), (Y && this.__addimage__.isArrayBuffer(Y) || this.__addimage__.isArrayBufferView(Y)) && (Y = this.__addimage__.arrayBufferToBinaryString(Y)), { alias: m, data: w, index: p, filter: R, decodeParameters: X, transparency: P, palette: J, sMask: Y, predictor: b, width: E.width, height: E.height, bitsPerComponent: v, colorSpace: D };
    }
  };
})(Fe.API), function(t) {
  t.processGIF89A = function(e, A, r, n) {
    var s = new aw(e), a = s.width, o = s.height, c = [];
    s.decodeAndBlitFrameRGBA(0, c);
    var d = { data: c, width: a, height: o }, h = new hc(100).encode(d, 100);
    return t.processJPEG.call(this, h, A, r, n);
  }, t.processGIF87A = t.processGIF89A;
}(Fe.API), Jr.prototype.parseHeader = function() {
  if (this.fileSize = this.datav.getUint32(this.pos, !0), this.pos += 4, this.reserved = this.datav.getUint32(this.pos, !0), this.pos += 4, this.offset = this.datav.getUint32(this.pos, !0), this.pos += 4, this.headerSize = this.datav.getUint32(this.pos, !0), this.pos += 4, this.width = this.datav.getUint32(this.pos, !0), this.pos += 4, this.height = this.datav.getInt32(this.pos, !0), this.pos += 4, this.planes = this.datav.getUint16(this.pos, !0), this.pos += 2, this.bitPP = this.datav.getUint16(this.pos, !0), this.pos += 2, this.compress = this.datav.getUint32(this.pos, !0), this.pos += 4, this.rawSize = this.datav.getUint32(this.pos, !0), this.pos += 4, this.hr = this.datav.getUint32(this.pos, !0), this.pos += 4, this.vr = this.datav.getUint32(this.pos, !0), this.pos += 4, this.colors = this.datav.getUint32(this.pos, !0), this.pos += 4, this.importantColors = this.datav.getUint32(this.pos, !0), this.pos += 4, this.bitPP === 16 && this.is_with_alpha && (this.bitPP = 15), this.bitPP < 15) {
    var t = this.colors === 0 ? 1 << this.bitPP : this.colors;
    this.palette = new Array(t);
    for (var e = 0; e < t; e++) {
      var A = this.datav.getUint8(this.pos++, !0), r = this.datav.getUint8(this.pos++, !0), n = this.datav.getUint8(this.pos++, !0), s = this.datav.getUint8(this.pos++, !0);
      this.palette[e] = { red: n, green: r, blue: A, quad: s };
    }
  }
  this.height < 0 && (this.height *= -1, this.bottom_up = !1);
}, Jr.prototype.parseBGR = function() {
  this.pos = this.offset;
  try {
    var t = "bit" + this.bitPP, e = this.width * this.height * 4;
    this.data = new Uint8Array(e), this[t]();
  } catch (A) {
    ot.log("bit decode error:" + A);
  }
}, Jr.prototype.bit1 = function() {
  var t, e = Math.ceil(this.width / 8), A = e % 4;
  for (t = this.height - 1; t >= 0; t--) {
    for (var r = this.bottom_up ? t : this.height - 1 - t, n = 0; n < e; n++) for (var s = this.datav.getUint8(this.pos++, !0), a = r * this.width * 4 + 8 * n * 4, o = 0; o < 8 && 8 * n + o < this.width; o++) {
      var c = this.palette[s >> 7 - o & 1];
      this.data[a + 4 * o] = c.blue, this.data[a + 4 * o + 1] = c.green, this.data[a + 4 * o + 2] = c.red, this.data[a + 4 * o + 3] = 255;
    }
    A !== 0 && (this.pos += 4 - A);
  }
}, Jr.prototype.bit4 = function() {
  for (var t = Math.ceil(this.width / 2), e = t % 4, A = this.height - 1; A >= 0; A--) {
    for (var r = this.bottom_up ? A : this.height - 1 - A, n = 0; n < t; n++) {
      var s = this.datav.getUint8(this.pos++, !0), a = r * this.width * 4 + 2 * n * 4, o = s >> 4, c = 15 & s, d = this.palette[o];
      if (this.data[a] = d.blue, this.data[a + 1] = d.green, this.data[a + 2] = d.red, this.data[a + 3] = 255, 2 * n + 1 >= this.width) break;
      d = this.palette[c], this.data[a + 4] = d.blue, this.data[a + 4 + 1] = d.green, this.data[a + 4 + 2] = d.red, this.data[a + 4 + 3] = 255;
    }
    e !== 0 && (this.pos += 4 - e);
  }
}, Jr.prototype.bit8 = function() {
  for (var t = this.width % 4, e = this.height - 1; e >= 0; e--) {
    for (var A = this.bottom_up ? e : this.height - 1 - e, r = 0; r < this.width; r++) {
      var n = this.datav.getUint8(this.pos++, !0), s = A * this.width * 4 + 4 * r;
      if (n < this.palette.length) {
        var a = this.palette[n];
        this.data[s] = a.red, this.data[s + 1] = a.green, this.data[s + 2] = a.blue, this.data[s + 3] = 255;
      } else this.data[s] = 255, this.data[s + 1] = 255, this.data[s + 2] = 255, this.data[s + 3] = 255;
    }
    t !== 0 && (this.pos += 4 - t);
  }
}, Jr.prototype.bit15 = function() {
  for (var t = this.width % 3, e = parseInt("11111", 2), A = this.height - 1; A >= 0; A--) {
    for (var r = this.bottom_up ? A : this.height - 1 - A, n = 0; n < this.width; n++) {
      var s = this.datav.getUint16(this.pos, !0);
      this.pos += 2;
      var a = (s & e) / e * 255 | 0, o = (s >> 5 & e) / e * 255 | 0, c = (s >> 10 & e) / e * 255 | 0, d = s >> 15 ? 255 : 0, h = r * this.width * 4 + 4 * n;
      this.data[h] = c, this.data[h + 1] = o, this.data[h + 2] = a, this.data[h + 3] = d;
    }
    this.pos += t;
  }
}, Jr.prototype.bit16 = function() {
  for (var t = this.width % 3, e = parseInt("11111", 2), A = parseInt("111111", 2), r = this.height - 1; r >= 0; r--) {
    for (var n = this.bottom_up ? r : this.height - 1 - r, s = 0; s < this.width; s++) {
      var a = this.datav.getUint16(this.pos, !0);
      this.pos += 2;
      var o = (a & e) / e * 255 | 0, c = (a >> 5 & A) / A * 255 | 0, d = (a >> 11) / e * 255 | 0, h = n * this.width * 4 + 4 * s;
      this.data[h] = d, this.data[h + 1] = c, this.data[h + 2] = o, this.data[h + 3] = 255;
    }
    this.pos += t;
  }
}, Jr.prototype.bit24 = function() {
  for (var t = this.height - 1; t >= 0; t--) {
    for (var e = this.bottom_up ? t : this.height - 1 - t, A = 0; A < this.width; A++) {
      var r = this.datav.getUint8(this.pos++, !0), n = this.datav.getUint8(this.pos++, !0), s = this.datav.getUint8(this.pos++, !0), a = e * this.width * 4 + 4 * A;
      this.data[a] = s, this.data[a + 1] = n, this.data[a + 2] = r, this.data[a + 3] = 255;
    }
    this.pos += this.width % 4;
  }
}, Jr.prototype.bit32 = function() {
  for (var t = this.height - 1; t >= 0; t--) for (var e = this.bottom_up ? t : this.height - 1 - t, A = 0; A < this.width; A++) {
    var r = this.datav.getUint8(this.pos++, !0), n = this.datav.getUint8(this.pos++, !0), s = this.datav.getUint8(this.pos++, !0), a = this.datav.getUint8(this.pos++, !0), o = e * this.width * 4 + 4 * A;
    this.data[o] = s, this.data[o + 1] = n, this.data[o + 2] = r, this.data[o + 3] = a;
  }
}, Jr.prototype.getData = function() {
  return this.data;
}, /**
 * @license
 * Copyright (c) 2018 Aras Abbasi
 *
 * Licensed under the MIT License.
 * http://opensource.org/licenses/mit-license
 */
function(t) {
  t.processBMP = function(e, A, r, n) {
    var s = new Jr(e, !1), a = s.width, o = s.height, c = { data: s.getData(), width: a, height: o }, d = new hc(100).encode(c, 100);
    return t.processJPEG.call(this, d, A, r, n);
  };
}(Fe.API), Lf.prototype.getData = function() {
  return this.data;
}, /**
 * @license
 * Copyright (c) 2019 Aras Abbasi
 *
 * Licensed under the MIT License.
 * http://opensource.org/licenses/mit-license
 */
function(t) {
  t.processWEBP = function(e, A, r, n) {
    var s = new Lf(e), a = s.width, o = s.height, c = { data: s.getData(), width: a, height: o }, d = new hc(100).encode(c, 100);
    return t.processJPEG.call(this, d, A, r, n);
  };
}(Fe.API), Fe.API.processRGBA = function(t, e, A) {
  for (var r = t.data, n = r.length, s = new Uint8Array(n / 4 * 3), a = new Uint8Array(n / 4), o = 0, c = 0, d = 0; d < n; d += 4) {
    var h = r[d], g = r[d + 1], w = r[d + 2], p = r[d + 3];
    s[o++] = h, s[o++] = g, s[o++] = w, a[c++] = p;
  }
  var m = this.__addimage__.arrayBufferToBinaryString(s);
  return { alpha: this.__addimage__.arrayBufferToBinaryString(a), data: m, index: e, alias: A, colorSpace: "DeviceRGB", bitsPerComponent: 8, width: t.width, height: t.height };
}, Fe.API.setLanguage = function(t) {
  return this.internal.languageSettings === void 0 && (this.internal.languageSettings = {}, this.internal.languageSettings.isSubscribed = !1), { af: "Afrikaans", sq: "Albanian", ar: "Arabic (Standard)", "ar-DZ": "Arabic (Algeria)", "ar-BH": "Arabic (Bahrain)", "ar-EG": "Arabic (Egypt)", "ar-IQ": "Arabic (Iraq)", "ar-JO": "Arabic (Jordan)", "ar-KW": "Arabic (Kuwait)", "ar-LB": "Arabic (Lebanon)", "ar-LY": "Arabic (Libya)", "ar-MA": "Arabic (Morocco)", "ar-OM": "Arabic (Oman)", "ar-QA": "Arabic (Qatar)", "ar-SA": "Arabic (Saudi Arabia)", "ar-SY": "Arabic (Syria)", "ar-TN": "Arabic (Tunisia)", "ar-AE": "Arabic (U.A.E.)", "ar-YE": "Arabic (Yemen)", an: "Aragonese", hy: "Armenian", as: "Assamese", ast: "Asturian", az: "Azerbaijani", eu: "Basque", be: "Belarusian", bn: "Bengali", bs: "Bosnian", br: "Breton", bg: "Bulgarian", my: "Burmese", ca: "Catalan", ch: "Chamorro", ce: "Chechen", zh: "Chinese", "zh-HK": "Chinese (Hong Kong)", "zh-CN": "Chinese (PRC)", "zh-SG": "Chinese (Singapore)", "zh-TW": "Chinese (Taiwan)", cv: "Chuvash", co: "Corsican", cr: "Cree", hr: "Croatian", cs: "Czech", da: "Danish", nl: "Dutch (Standard)", "nl-BE": "Dutch (Belgian)", en: "English", "en-AU": "English (Australia)", "en-BZ": "English (Belize)", "en-CA": "English (Canada)", "en-IE": "English (Ireland)", "en-JM": "English (Jamaica)", "en-NZ": "English (New Zealand)", "en-PH": "English (Philippines)", "en-ZA": "English (South Africa)", "en-TT": "English (Trinidad & Tobago)", "en-GB": "English (United Kingdom)", "en-US": "English (United States)", "en-ZW": "English (Zimbabwe)", eo: "Esperanto", et: "Estonian", fo: "Faeroese", fj: "Fijian", fi: "Finnish", fr: "French (Standard)", "fr-BE": "French (Belgium)", "fr-CA": "French (Canada)", "fr-FR": "French (France)", "fr-LU": "French (Luxembourg)", "fr-MC": "French (Monaco)", "fr-CH": "French (Switzerland)", fy: "Frisian", fur: "Friulian", gd: "Gaelic (Scots)", "gd-IE": "Gaelic (Irish)", gl: "Galacian", ka: "Georgian", de: "German (Standard)", "de-AT": "German (Austria)", "de-DE": "German (Germany)", "de-LI": "German (Liechtenstein)", "de-LU": "German (Luxembourg)", "de-CH": "German (Switzerland)", el: "Greek", gu: "Gujurati", ht: "Haitian", he: "Hebrew", hi: "Hindi", hu: "Hungarian", is: "Icelandic", id: "Indonesian", iu: "Inuktitut", ga: "Irish", it: "Italian (Standard)", "it-CH": "Italian (Switzerland)", ja: "Japanese", kn: "Kannada", ks: "Kashmiri", kk: "Kazakh", km: "Khmer", ky: "Kirghiz", tlh: "Klingon", ko: "Korean", "ko-KP": "Korean (North Korea)", "ko-KR": "Korean (South Korea)", la: "Latin", lv: "Latvian", lt: "Lithuanian", lb: "Luxembourgish", mk: "North Macedonia", ms: "Malay", ml: "Malayalam", mt: "Maltese", mi: "Maori", mr: "Marathi", mo: "Moldavian", nv: "Navajo", ng: "Ndonga", ne: "Nepali", no: "Norwegian", nb: "Norwegian (Bokmal)", nn: "Norwegian (Nynorsk)", oc: "Occitan", or: "Oriya", om: "Oromo", fa: "Persian", "fa-IR": "Persian/Iran", pl: "Polish", pt: "Portuguese", "pt-BR": "Portuguese (Brazil)", pa: "Punjabi", "pa-IN": "Punjabi (India)", "pa-PK": "Punjabi (Pakistan)", qu: "Quechua", rm: "Rhaeto-Romanic", ro: "Romanian", "ro-MO": "Romanian (Moldavia)", ru: "Russian", "ru-MO": "Russian (Moldavia)", sz: "Sami (Lappish)", sg: "Sango", sa: "Sanskrit", sc: "Sardinian", sd: "Sindhi", si: "Singhalese", sr: "Serbian", sk: "Slovak", sl: "Slovenian", so: "Somani", sb: "Sorbian", es: "Spanish", "es-AR": "Spanish (Argentina)", "es-BO": "Spanish (Bolivia)", "es-CL": "Spanish (Chile)", "es-CO": "Spanish (Colombia)", "es-CR": "Spanish (Costa Rica)", "es-DO": "Spanish (Dominican Republic)", "es-EC": "Spanish (Ecuador)", "es-SV": "Spanish (El Salvador)", "es-GT": "Spanish (Guatemala)", "es-HN": "Spanish (Honduras)", "es-MX": "Spanish (Mexico)", "es-NI": "Spanish (Nicaragua)", "es-PA": "Spanish (Panama)", "es-PY": "Spanish (Paraguay)", "es-PE": "Spanish (Peru)", "es-PR": "Spanish (Puerto Rico)", "es-ES": "Spanish (Spain)", "es-UY": "Spanish (Uruguay)", "es-VE": "Spanish (Venezuela)", sx: "Sutu", sw: "Swahili", sv: "Swedish", "sv-FI": "Swedish (Finland)", "sv-SV": "Swedish (Sweden)", ta: "Tamil", tt: "Tatar", te: "Teluga", th: "Thai", tig: "Tigre", ts: "Tsonga", tn: "Tswana", tr: "Turkish", tk: "Turkmen", uk: "Ukrainian", hsb: "Upper Sorbian", ur: "Urdu", ve: "Venda", vi: "Vietnamese", vo: "Volapuk", wa: "Walloon", cy: "Welsh", xh: "Xhosa", ji: "Yiddish", zu: "Zulu" }[t] !== void 0 && (this.internal.languageSettings.languageCode = t, this.internal.languageSettings.isSubscribed === !1 && (this.internal.events.subscribe("putCatalog", function() {
    this.internal.write("/Lang (" + this.internal.languageSettings.languageCode + ")");
  }), this.internal.languageSettings.isSubscribed = !0)), this;
}, $s = Fe.API, fo = $s.getCharWidthsArray = function(t, e) {
  var A, r, n = (e = e || {}).font || this.internal.getFont(), s = e.fontSize || this.internal.getFontSize(), a = e.charSpace || this.internal.getCharSpace(), o = e.widths ? e.widths : n.metadata.Unicode.widths, c = o.fof ? o.fof : 1, d = e.kerning ? e.kerning : n.metadata.Unicode.kerning, h = d.fof ? d.fof : 1, g = e.doKerning !== !1, w = 0, p = t.length, m = 0, F = o[0] || c, D = [];
  for (A = 0; A < p; A++) r = t.charCodeAt(A), typeof n.metadata.widthOfString == "function" ? D.push((n.metadata.widthOfGlyph(n.metadata.characterToGlyph(r)) + a * (1e3 / s) || 0) / 1e3) : (w = g && et(d[r]) === "object" && !isNaN(parseInt(d[r][m], 10)) ? d[r][m] / h : 0, D.push((o[r] || F) / c + w)), m = r;
  return D;
}, bf = $s.getStringUnitWidth = function(t, e) {
  var A = (e = e || {}).fontSize || this.internal.getFontSize(), r = e.font || this.internal.getFont(), n = e.charSpace || this.internal.getCharSpace();
  return $s.processArabic && (t = $s.processArabic(t)), typeof r.metadata.widthOfString == "function" ? r.metadata.widthOfString(t, A, n) / A : fo.apply(this, arguments).reduce(function(s, a) {
    return s + a;
  }, 0);
}, Ff = function(t, e, A, r) {
  for (var n = [], s = 0, a = t.length, o = 0; s !== a && o + e[s] < A; ) o += e[s], s++;
  n.push(t.slice(0, s));
  var c = s;
  for (o = 0; s !== a; ) o + e[s] > r && (n.push(t.slice(c, s)), o = 0, c = s), o += e[s], s++;
  return c !== s && n.push(t.slice(c, s)), n;
}, Qf = function(t, e, A) {
  A || (A = {});
  var r, n, s, a, o, c, d, h = [], g = [h], w = A.textIndent || 0, p = 0, m = 0, F = t.split(" "), D = fo.apply(this, [" ", A])[0];
  if (c = A.lineIndent === -1 ? F[0].length + 2 : A.lineIndent || 0) {
    var v = Array(c).join(" "), E = [];
    F.map(function(V) {
      (V = V.split(/\s*\n/)).length > 1 ? E = E.concat(V.map(function(J, Y) {
        return (Y && J.length ? `
` : "") + J;
      })) : E.push(V[0]);
    }), F = E, c = bf.apply(this, [v, A]);
  }
  for (s = 0, a = F.length; s < a; s++) {
    var P = 0;
    if (r = F[s], c && r[0] == `
` && (r = r.substr(1), P = 1), w + p + (m = (n = fo.apply(this, [r, A])).reduce(function(V, J) {
      return V + J;
    }, 0)) > e || P) {
      if (m > e) {
        for (o = Ff.apply(this, [r, n, e - (w + p), e]), h.push(o.shift()), h = [o.pop()]; o.length; ) g.push([o.shift()]);
        m = n.slice(r.length - (h[0] ? h[0].length : 0)).reduce(function(V, J) {
          return V + J;
        }, 0);
      } else h = [r];
      g.push(h), w = m + c, p = D;
    } else h.push(r), w += p + m, p = D;
  }
  return d = c ? function(V, J) {
    return (J ? v : "") + V.join(" ");
  } : function(V) {
    return V.join(" ");
  }, g.map(d);
}, $s.splitTextToSize = function(t, e, A) {
  var r, n = (A = A || {}).fontSize || this.internal.getFontSize(), s = (function(h) {
    if (h.widths && h.kerning) return { widths: h.widths, kerning: h.kerning };
    var g = this.internal.getFont(h.fontName, h.fontStyle);
    return g.metadata.Unicode ? { widths: g.metadata.Unicode.widths || { 0: 1 }, kerning: g.metadata.Unicode.kerning || {} } : { font: g.metadata, fontSize: this.internal.getFontSize(), charSpace: this.internal.getCharSpace() };
  }).call(this, A);
  r = Array.isArray(t) ? t : String(t).split(/\r?\n/);
  var a = 1 * this.internal.scaleFactor * e / n;
  s.textIndent = A.textIndent ? 1 * A.textIndent * this.internal.scaleFactor / n : 0, s.lineIndent = A.lineIndent;
  var o, c, d = [];
  for (o = 0, c = r.length; o < c; o++) d = d.concat(Qf.apply(this, [r[o], a, s]));
  return d;
}, function(t) {
  t.__fontmetrics__ = t.__fontmetrics__ || {};
  for (var e = "klmnopqrstuvwxyz", A = {}, r = {}, n = 0; n < e.length; n++) A[e[n]] = "0123456789abcdef"[n], r["0123456789abcdef"[n]] = e[n];
  var s = function(g) {
    return "0x" + parseInt(g, 10).toString(16);
  }, a = t.__fontmetrics__.compress = function(g) {
    var w, p, m, F, D = ["{"];
    for (var v in g) {
      if (w = g[v], isNaN(parseInt(v, 10)) ? p = "'" + v + "'" : (v = parseInt(v, 10), p = (p = s(v).slice(2)).slice(0, -1) + r[p.slice(-1)]), typeof w == "number") w < 0 ? (m = s(w).slice(3), F = "-") : (m = s(w).slice(2), F = ""), m = F + m.slice(0, -1) + r[m.slice(-1)];
      else {
        if (et(w) !== "object") throw new Error("Don't know what to do with value type " + et(w) + ".");
        m = a(w);
      }
      D.push(p + m);
    }
    return D.push("}"), D.join("");
  }, o = t.__fontmetrics__.uncompress = function(g) {
    if (typeof g != "string") throw new Error("Invalid argument passed to uncompress.");
    for (var w, p, m, F, D = {}, v = 1, E = D, P = [], V = "", J = "", Y = g.length - 1, W = 1; W < Y; W += 1) (F = g[W]) == "'" ? w ? (m = w.join(""), w = void 0) : w = [] : w ? w.push(F) : F == "{" ? (P.push([E, m]), E = {}, m = void 0) : F == "}" ? ((p = P.pop())[0][p[1]] = E, m = void 0, E = p[0]) : F == "-" ? v = -1 : m === void 0 ? A.hasOwnProperty(F) ? (V += A[F], m = parseInt(V, 16) * v, v = 1, V = "") : V += F : A.hasOwnProperty(F) ? (J += A[F], E[m] = parseInt(J, 16) * v, v = 1, m = void 0, J = "") : J += F;
    return D;
  }, c = { codePages: ["WinAnsiEncoding"], WinAnsiEncoding: o("{19m8n201n9q201o9r201s9l201t9m201u8m201w9n201x9o201y8o202k8q202l8r202m9p202q8p20aw8k203k8t203t8v203u9v2cq8s212m9t15m8w15n9w2dw9s16k8u16l9u17s9z17x8y17y9y}") }, d = { Unicode: { Courier: c, "Courier-Bold": c, "Courier-BoldOblique": c, "Courier-Oblique": c, Helvetica: c, "Helvetica-Bold": c, "Helvetica-BoldOblique": c, "Helvetica-Oblique": c, "Times-Roman": c, "Times-Bold": c, "Times-BoldItalic": c, "Times-Italic": c } }, h = { Unicode: { "Courier-Oblique": o("{'widths'{k3w'fof'6o}'kerning'{'fof'-6o}}"), "Times-BoldItalic": o("{'widths'{k3o2q4ycx2r201n3m201o6o201s2l201t2l201u2l201w3m201x3m201y3m2k1t2l2r202m2n2n3m2o3m2p5n202q6o2r1w2s2l2t2l2u3m2v3t2w1t2x2l2y1t2z1w3k3m3l3m3m3m3n3m3o3m3p3m3q3m3r3m3s3m203t2l203u2l3v2l3w3t3x3t3y3t3z3m4k5n4l4m4m4m4n4m4o4s4p4m4q4m4r4s4s4y4t2r4u3m4v4m4w3x4x5t4y4s4z4s5k3x5l4s5m4m5n3r5o3x5p4s5q4m5r5t5s4m5t3x5u3x5v2l5w1w5x2l5y3t5z3m6k2l6l3m6m3m6n2w6o3m6p2w6q2l6r3m6s3r6t1w6u1w6v3m6w1w6x4y6y3r6z3m7k3m7l3m7m2r7n2r7o1w7p3r7q2w7r4m7s3m7t2w7u2r7v2n7w1q7x2n7y3t202l3mcl4mal2ram3man3mao3map3mar3mas2lat4uau1uav3maw3way4uaz2lbk2sbl3t'fof'6obo2lbp3tbq3mbr1tbs2lbu1ybv3mbz3mck4m202k3mcm4mcn4mco4mcp4mcq5ycr4mcs4mct4mcu4mcv4mcw2r2m3rcy2rcz2rdl4sdm4sdn4sdo4sdp4sdq4sds4sdt4sdu4sdv4sdw4sdz3mek3mel3mem3men3meo3mep3meq4ser2wes2wet2weu2wev2wew1wex1wey1wez1wfl3rfm3mfn3mfo3mfp3mfq3mfr3tfs3mft3rfu3rfv3rfw3rfz2w203k6o212m6o2dw2l2cq2l3t3m3u2l17s3x19m3m}'kerning'{cl{4qu5kt5qt5rs17ss5ts}201s{201ss}201t{cks4lscmscnscoscpscls2wu2yu201ts}201x{2wu2yu}2k{201ts}2w{4qx5kx5ou5qx5rs17su5tu}2x{17su5tu5ou}2y{4qx5kx5ou5qx5rs17ss5ts}'fof'-6ofn{17sw5tw5ou5qw5rs}7t{cksclscmscnscoscps4ls}3u{17su5tu5os5qs}3v{17su5tu5os5qs}7p{17su5tu}ck{4qu5kt5qt5rs17ss5ts}4l{4qu5kt5qt5rs17ss5ts}cm{4qu5kt5qt5rs17ss5ts}cn{4qu5kt5qt5rs17ss5ts}co{4qu5kt5qt5rs17ss5ts}cp{4qu5kt5qt5rs17ss5ts}6l{4qu5ou5qw5rt17su5tu}5q{ckuclucmucnucoucpu4lu}5r{ckuclucmucnucoucpu4lu}7q{cksclscmscnscoscps4ls}6p{4qu5ou5qw5rt17sw5tw}ek{4qu5ou5qw5rt17su5tu}el{4qu5ou5qw5rt17su5tu}em{4qu5ou5qw5rt17su5tu}en{4qu5ou5qw5rt17su5tu}eo{4qu5ou5qw5rt17su5tu}ep{4qu5ou5qw5rt17su5tu}es{17ss5ts5qs4qu}et{4qu5ou5qw5rt17sw5tw}eu{4qu5ou5qw5rt17ss5ts}ev{17ss5ts5qs4qu}6z{17sw5tw5ou5qw5rs}fm{17sw5tw5ou5qw5rs}7n{201ts}fo{17sw5tw5ou5qw5rs}fp{17sw5tw5ou5qw5rs}fq{17sw5tw5ou5qw5rs}7r{cksclscmscnscoscps4ls}fs{17sw5tw5ou5qw5rs}ft{17su5tu}fu{17su5tu}fv{17su5tu}fw{17su5tu}fz{cksclscmscnscoscps4ls}}}"), "Helvetica-Bold": o("{'widths'{k3s2q4scx1w201n3r201o6o201s1w201t1w201u1w201w3m201x3m201y3m2k1w2l2l202m2n2n3r2o3r2p5t202q6o2r1s2s2l2t2l2u2r2v3u2w1w2x2l2y1w2z1w3k3r3l3r3m3r3n3r3o3r3p3r3q3r3r3r3s3r203t2l203u2l3v2l3w3u3x3u3y3u3z3x4k6l4l4s4m4s4n4s4o4s4p4m4q3x4r4y4s4s4t1w4u3r4v4s4w3x4x5n4y4s4z4y5k4m5l4y5m4s5n4m5o3x5p4s5q4m5r5y5s4m5t4m5u3x5v2l5w1w5x2l5y3u5z3r6k2l6l3r6m3x6n3r6o3x6p3r6q2l6r3x6s3x6t1w6u1w6v3r6w1w6x5t6y3x6z3x7k3x7l3x7m2r7n3r7o2l7p3x7q3r7r4y7s3r7t3r7u3m7v2r7w1w7x2r7y3u202l3rcl4sal2lam3ran3rao3rap3rar3ras2lat4tau2pav3raw3uay4taz2lbk2sbl3u'fof'6obo2lbp3xbq3rbr1wbs2lbu2obv3rbz3xck4s202k3rcm4scn4sco4scp4scq6ocr4scs4mct4mcu4mcv4mcw1w2m2zcy1wcz1wdl4sdm4ydn4ydo4ydp4ydq4yds4ydt4sdu4sdv4sdw4sdz3xek3rel3rem3ren3reo3rep3req5ter3res3ret3reu3rev3rew1wex1wey1wez1wfl3xfm3xfn3xfo3xfp3xfq3xfr3ufs3xft3xfu3xfv3xfw3xfz3r203k6o212m6o2dw2l2cq2l3t3r3u2l17s4m19m3r}'kerning'{cl{4qs5ku5ot5qs17sv5tv}201t{2ww4wy2yw}201w{2ks}201x{2ww4wy2yw}2k{201ts201xs}2w{7qs4qu5kw5os5qw5rs17su5tu7tsfzs}2x{5ow5qs}2y{7qs4qu5kw5os5qw5rs17su5tu7tsfzs}'fof'-6o7p{17su5tu5ot}ck{4qs5ku5ot5qs17sv5tv}4l{4qs5ku5ot5qs17sv5tv}cm{4qs5ku5ot5qs17sv5tv}cn{4qs5ku5ot5qs17sv5tv}co{4qs5ku5ot5qs17sv5tv}cp{4qs5ku5ot5qs17sv5tv}6l{17st5tt5os}17s{2kwclvcmvcnvcovcpv4lv4wwckv}5o{2kucltcmtcntcotcpt4lt4wtckt}5q{2ksclscmscnscoscps4ls4wvcks}5r{2ks4ws}5t{2kwclvcmvcnvcovcpv4lv4wwckv}eo{17st5tt5os}fu{17su5tu5ot}6p{17ss5ts}ek{17st5tt5os}el{17st5tt5os}em{17st5tt5os}en{17st5tt5os}6o{201ts}ep{17st5tt5os}es{17ss5ts}et{17ss5ts}eu{17ss5ts}ev{17ss5ts}6z{17su5tu5os5qt}fm{17su5tu5os5qt}fn{17su5tu5os5qt}fo{17su5tu5os5qt}fp{17su5tu5os5qt}fq{17su5tu5os5qt}fs{17su5tu5os5qt}ft{17su5tu5ot}7m{5os}fv{17su5tu5ot}fw{17su5tu5ot}}}"), Courier: o("{'widths'{k3w'fof'6o}'kerning'{'fof'-6o}}"), "Courier-BoldOblique": o("{'widths'{k3w'fof'6o}'kerning'{'fof'-6o}}"), "Times-Bold": o("{'widths'{k3q2q5ncx2r201n3m201o6o201s2l201t2l201u2l201w3m201x3m201y3m2k1t2l2l202m2n2n3m2o3m2p6o202q6o2r1w2s2l2t2l2u3m2v3t2w1t2x2l2y1t2z1w3k3m3l3m3m3m3n3m3o3m3p3m3q3m3r3m3s3m203t2l203u2l3v2l3w3t3x3t3y3t3z3m4k5x4l4s4m4m4n4s4o4s4p4m4q3x4r4y4s4y4t2r4u3m4v4y4w4m4x5y4y4s4z4y5k3x5l4y5m4s5n3r5o4m5p4s5q4s5r6o5s4s5t4s5u4m5v2l5w1w5x2l5y3u5z3m6k2l6l3m6m3r6n2w6o3r6p2w6q2l6r3m6s3r6t1w6u2l6v3r6w1w6x5n6y3r6z3m7k3r7l3r7m2w7n2r7o2l7p3r7q3m7r4s7s3m7t3m7u2w7v2r7w1q7x2r7y3o202l3mcl4sal2lam3man3mao3map3mar3mas2lat4uau1yav3maw3tay4uaz2lbk2sbl3t'fof'6obo2lbp3rbr1tbs2lbu2lbv3mbz3mck4s202k3mcm4scn4sco4scp4scq6ocr4scs4mct4mcu4mcv4mcw2r2m3rcy2rcz2rdl4sdm4ydn4ydo4ydp4ydq4yds4ydt4sdu4sdv4sdw4sdz3rek3mel3mem3men3meo3mep3meq4ser2wes2wet2weu2wev2wew1wex1wey1wez1wfl3rfm3mfn3mfo3mfp3mfq3mfr3tfs3mft3rfu3rfv3rfw3rfz3m203k6o212m6o2dw2l2cq2l3t3m3u2l17s4s19m3m}'kerning'{cl{4qt5ks5ot5qy5rw17sv5tv}201t{cks4lscmscnscoscpscls4wv}2k{201ts}2w{4qu5ku7mu5os5qx5ru17su5tu}2x{17su5tu5ou5qs}2y{4qv5kv7mu5ot5qz5ru17su5tu}'fof'-6o7t{cksclscmscnscoscps4ls}3u{17su5tu5os5qu}3v{17su5tu5os5qu}fu{17su5tu5ou5qu}7p{17su5tu5ou5qu}ck{4qt5ks5ot5qy5rw17sv5tv}4l{4qt5ks5ot5qy5rw17sv5tv}cm{4qt5ks5ot5qy5rw17sv5tv}cn{4qt5ks5ot5qy5rw17sv5tv}co{4qt5ks5ot5qy5rw17sv5tv}cp{4qt5ks5ot5qy5rw17sv5tv}6l{17st5tt5ou5qu}17s{ckuclucmucnucoucpu4lu4wu}5o{ckuclucmucnucoucpu4lu4wu}5q{ckzclzcmzcnzcozcpz4lz4wu}5r{ckxclxcmxcnxcoxcpx4lx4wu}5t{ckuclucmucnucoucpu4lu4wu}7q{ckuclucmucnucoucpu4lu}6p{17sw5tw5ou5qu}ek{17st5tt5qu}el{17st5tt5ou5qu}em{17st5tt5qu}en{17st5tt5qu}eo{17st5tt5qu}ep{17st5tt5ou5qu}es{17ss5ts5qu}et{17sw5tw5ou5qu}eu{17sw5tw5ou5qu}ev{17ss5ts5qu}6z{17sw5tw5ou5qu5rs}fm{17sw5tw5ou5qu5rs}fn{17sw5tw5ou5qu5rs}fo{17sw5tw5ou5qu5rs}fp{17sw5tw5ou5qu5rs}fq{17sw5tw5ou5qu5rs}7r{cktcltcmtcntcotcpt4lt5os}fs{17sw5tw5ou5qu5rs}ft{17su5tu5ou5qu}7m{5os}fv{17su5tu5ou5qu}fw{17su5tu5ou5qu}fz{cksclscmscnscoscps4ls}}}"), Symbol: o("{'widths'{k3uaw4r19m3m2k1t2l2l202m2y2n3m2p5n202q6o3k3m2s2l2t2l2v3r2w1t3m3m2y1t2z1wbk2sbl3r'fof'6o3n3m3o3m3p3m3q3m3r3m3s3m3t3m3u1w3v1w3w3r3x3r3y3r3z2wbp3t3l3m5v2l5x2l5z3m2q4yfr3r7v3k7w1o7x3k}'kerning'{'fof'-6o}}"), Helvetica: o("{'widths'{k3p2q4mcx1w201n3r201o6o201s1q201t1q201u1q201w2l201x2l201y2l2k1w2l1w202m2n2n3r2o3r2p5t202q6o2r1n2s2l2t2l2u2r2v3u2w1w2x2l2y1w2z1w3k3r3l3r3m3r3n3r3o3r3p3r3q3r3r3r3s3r203t2l203u2l3v1w3w3u3x3u3y3u3z3r4k6p4l4m4m4m4n4s4o4s4p4m4q3x4r4y4s4s4t1w4u3m4v4m4w3r4x5n4y4s4z4y5k4m5l4y5m4s5n4m5o3x5p4s5q4m5r5y5s4m5t4m5u3x5v1w5w1w5x1w5y2z5z3r6k2l6l3r6m3r6n3m6o3r6p3r6q1w6r3r6s3r6t1q6u1q6v3m6w1q6x5n6y3r6z3r7k3r7l3r7m2l7n3m7o1w7p3r7q3m7r4s7s3m7t3m7u3m7v2l7w1u7x2l7y3u202l3rcl4mal2lam3ran3rao3rap3rar3ras2lat4tau2pav3raw3uay4taz2lbk2sbl3u'fof'6obo2lbp3rbr1wbs2lbu2obv3rbz3xck4m202k3rcm4mcn4mco4mcp4mcq6ocr4scs4mct4mcu4mcv4mcw1w2m2ncy1wcz1wdl4sdm4ydn4ydo4ydp4ydq4yds4ydt4sdu4sdv4sdw4sdz3xek3rel3rem3ren3reo3rep3req5ter3mes3ret3reu3rev3rew1wex1wey1wez1wfl3rfm3rfn3rfo3rfp3rfq3rfr3ufs3xft3rfu3rfv3rfw3rfz3m203k6o212m6o2dw2l2cq2l3t3r3u1w17s4m19m3r}'kerning'{5q{4wv}cl{4qs5kw5ow5qs17sv5tv}201t{2wu4w1k2yu}201x{2wu4wy2yu}17s{2ktclucmucnu4otcpu4lu4wycoucku}2w{7qs4qz5k1m17sy5ow5qx5rsfsu5ty7tufzu}2x{17sy5ty5oy5qs}2y{7qs4qz5k1m17sy5ow5qx5rsfsu5ty7tufzu}'fof'-6o7p{17sv5tv5ow}ck{4qs5kw5ow5qs17sv5tv}4l{4qs5kw5ow5qs17sv5tv}cm{4qs5kw5ow5qs17sv5tv}cn{4qs5kw5ow5qs17sv5tv}co{4qs5kw5ow5qs17sv5tv}cp{4qs5kw5ow5qs17sv5tv}6l{17sy5ty5ow}do{17st5tt}4z{17st5tt}7s{fst}dm{17st5tt}dn{17st5tt}5o{ckwclwcmwcnwcowcpw4lw4wv}dp{17st5tt}dq{17st5tt}7t{5ow}ds{17st5tt}5t{2ktclucmucnu4otcpu4lu4wycoucku}fu{17sv5tv5ow}6p{17sy5ty5ow5qs}ek{17sy5ty5ow}el{17sy5ty5ow}em{17sy5ty5ow}en{5ty}eo{17sy5ty5ow}ep{17sy5ty5ow}es{17sy5ty5qs}et{17sy5ty5ow5qs}eu{17sy5ty5ow5qs}ev{17sy5ty5ow5qs}6z{17sy5ty5ow5qs}fm{17sy5ty5ow5qs}fn{17sy5ty5ow5qs}fo{17sy5ty5ow5qs}fp{17sy5ty5qs}fq{17sy5ty5ow5qs}7r{5ow}fs{17sy5ty5ow5qs}ft{17sv5tv5ow}7m{5ow}fv{17sv5tv5ow}fw{17sv5tv5ow}}}"), "Helvetica-BoldOblique": o("{'widths'{k3s2q4scx1w201n3r201o6o201s1w201t1w201u1w201w3m201x3m201y3m2k1w2l2l202m2n2n3r2o3r2p5t202q6o2r1s2s2l2t2l2u2r2v3u2w1w2x2l2y1w2z1w3k3r3l3r3m3r3n3r3o3r3p3r3q3r3r3r3s3r203t2l203u2l3v2l3w3u3x3u3y3u3z3x4k6l4l4s4m4s4n4s4o4s4p4m4q3x4r4y4s4s4t1w4u3r4v4s4w3x4x5n4y4s4z4y5k4m5l4y5m4s5n4m5o3x5p4s5q4m5r5y5s4m5t4m5u3x5v2l5w1w5x2l5y3u5z3r6k2l6l3r6m3x6n3r6o3x6p3r6q2l6r3x6s3x6t1w6u1w6v3r6w1w6x5t6y3x6z3x7k3x7l3x7m2r7n3r7o2l7p3x7q3r7r4y7s3r7t3r7u3m7v2r7w1w7x2r7y3u202l3rcl4sal2lam3ran3rao3rap3rar3ras2lat4tau2pav3raw3uay4taz2lbk2sbl3u'fof'6obo2lbp3xbq3rbr1wbs2lbu2obv3rbz3xck4s202k3rcm4scn4sco4scp4scq6ocr4scs4mct4mcu4mcv4mcw1w2m2zcy1wcz1wdl4sdm4ydn4ydo4ydp4ydq4yds4ydt4sdu4sdv4sdw4sdz3xek3rel3rem3ren3reo3rep3req5ter3res3ret3reu3rev3rew1wex1wey1wez1wfl3xfm3xfn3xfo3xfp3xfq3xfr3ufs3xft3xfu3xfv3xfw3xfz3r203k6o212m6o2dw2l2cq2l3t3r3u2l17s4m19m3r}'kerning'{cl{4qs5ku5ot5qs17sv5tv}201t{2ww4wy2yw}201w{2ks}201x{2ww4wy2yw}2k{201ts201xs}2w{7qs4qu5kw5os5qw5rs17su5tu7tsfzs}2x{5ow5qs}2y{7qs4qu5kw5os5qw5rs17su5tu7tsfzs}'fof'-6o7p{17su5tu5ot}ck{4qs5ku5ot5qs17sv5tv}4l{4qs5ku5ot5qs17sv5tv}cm{4qs5ku5ot5qs17sv5tv}cn{4qs5ku5ot5qs17sv5tv}co{4qs5ku5ot5qs17sv5tv}cp{4qs5ku5ot5qs17sv5tv}6l{17st5tt5os}17s{2kwclvcmvcnvcovcpv4lv4wwckv}5o{2kucltcmtcntcotcpt4lt4wtckt}5q{2ksclscmscnscoscps4ls4wvcks}5r{2ks4ws}5t{2kwclvcmvcnvcovcpv4lv4wwckv}eo{17st5tt5os}fu{17su5tu5ot}6p{17ss5ts}ek{17st5tt5os}el{17st5tt5os}em{17st5tt5os}en{17st5tt5os}6o{201ts}ep{17st5tt5os}es{17ss5ts}et{17ss5ts}eu{17ss5ts}ev{17ss5ts}6z{17su5tu5os5qt}fm{17su5tu5os5qt}fn{17su5tu5os5qt}fo{17su5tu5os5qt}fp{17su5tu5os5qt}fq{17su5tu5os5qt}fs{17su5tu5os5qt}ft{17su5tu5ot}7m{5os}fv{17su5tu5ot}fw{17su5tu5ot}}}"), ZapfDingbats: o("{'widths'{k4u2k1w'fof'6o}'kerning'{'fof'-6o}}"), "Courier-Bold": o("{'widths'{k3w'fof'6o}'kerning'{'fof'-6o}}"), "Times-Italic": o("{'widths'{k3n2q4ycx2l201n3m201o5t201s2l201t2l201u2l201w3r201x3r201y3r2k1t2l2l202m2n2n3m2o3m2p5n202q5t2r1p2s2l2t2l2u3m2v4n2w1t2x2l2y1t2z1w3k3m3l3m3m3m3n3m3o3m3p3m3q3m3r3m3s3m203t2l203u2l3v2l3w4n3x4n3y4n3z3m4k5w4l3x4m3x4n4m4o4s4p3x4q3x4r4s4s4s4t2l4u2w4v4m4w3r4x5n4y4m4z4s5k3x5l4s5m3x5n3m5o3r5p4s5q3x5r5n5s3x5t3r5u3r5v2r5w1w5x2r5y2u5z3m6k2l6l3m6m3m6n2w6o3m6p2w6q1w6r3m6s3m6t1w6u1w6v2w6w1w6x4s6y3m6z3m7k3m7l3m7m2r7n2r7o1w7p3m7q2w7r4m7s2w7t2w7u2r7v2s7w1v7x2s7y3q202l3mcl3xal2ram3man3mao3map3mar3mas2lat4wau1vav3maw4nay4waz2lbk2sbl4n'fof'6obo2lbp3mbq3obr1tbs2lbu1zbv3mbz3mck3x202k3mcm3xcn3xco3xcp3xcq5tcr4mcs3xct3xcu3xcv3xcw2l2m2ucy2lcz2ldl4mdm4sdn4sdo4sdp4sdq4sds4sdt4sdu4sdv4sdw4sdz3mek3mel3mem3men3meo3mep3meq4mer2wes2wet2weu2wev2wew1wex1wey1wez1wfl3mfm3mfn3mfo3mfp3mfq3mfr4nfs3mft3mfu3mfv3mfw3mfz2w203k6o212m6m2dw2l2cq2l3t3m3u2l17s3r19m3m}'kerning'{cl{5kt4qw}201s{201sw}201t{201tw2wy2yy6q-t}201x{2wy2yy}2k{201tw}2w{7qs4qy7rs5ky7mw5os5qx5ru17su5tu}2x{17ss5ts5os}2y{7qs4qy7rs5ky7mw5os5qx5ru17su5tu}'fof'-6o6t{17ss5ts5qs}7t{5os}3v{5qs}7p{17su5tu5qs}ck{5kt4qw}4l{5kt4qw}cm{5kt4qw}cn{5kt4qw}co{5kt4qw}cp{5kt4qw}6l{4qs5ks5ou5qw5ru17su5tu}17s{2ks}5q{ckvclvcmvcnvcovcpv4lv}5r{ckuclucmucnucoucpu4lu}5t{2ks}6p{4qs5ks5ou5qw5ru17su5tu}ek{4qs5ks5ou5qw5ru17su5tu}el{4qs5ks5ou5qw5ru17su5tu}em{4qs5ks5ou5qw5ru17su5tu}en{4qs5ks5ou5qw5ru17su5tu}eo{4qs5ks5ou5qw5ru17su5tu}ep{4qs5ks5ou5qw5ru17su5tu}es{5ks5qs4qs}et{4qs5ks5ou5qw5ru17su5tu}eu{4qs5ks5qw5ru17su5tu}ev{5ks5qs4qs}ex{17ss5ts5qs}6z{4qv5ks5ou5qw5ru17su5tu}fm{4qv5ks5ou5qw5ru17su5tu}fn{4qv5ks5ou5qw5ru17su5tu}fo{4qv5ks5ou5qw5ru17su5tu}fp{4qv5ks5ou5qw5ru17su5tu}fq{4qv5ks5ou5qw5ru17su5tu}7r{5os}fs{4qv5ks5ou5qw5ru17su5tu}ft{17su5tu5qs}fu{17su5tu5qs}fv{17su5tu5qs}fw{17su5tu5qs}}}"), "Times-Roman": o("{'widths'{k3n2q4ycx2l201n3m201o6o201s2l201t2l201u2l201w2w201x2w201y2w2k1t2l2l202m2n2n3m2o3m2p5n202q6o2r1m2s2l2t2l2u3m2v3s2w1t2x2l2y1t2z1w3k3m3l3m3m3m3n3m3o3m3p3m3q3m3r3m3s3m203t2l203u2l3v1w3w3s3x3s3y3s3z2w4k5w4l4s4m4m4n4m4o4s4p3x4q3r4r4s4s4s4t2l4u2r4v4s4w3x4x5t4y4s4z4s5k3r5l4s5m4m5n3r5o3x5p4s5q4s5r5y5s4s5t4s5u3x5v2l5w1w5x2l5y2z5z3m6k2l6l2w6m3m6n2w6o3m6p2w6q2l6r3m6s3m6t1w6u1w6v3m6w1w6x4y6y3m6z3m7k3m7l3m7m2l7n2r7o1w7p3m7q3m7r4s7s3m7t3m7u2w7v3k7w1o7x3k7y3q202l3mcl4sal2lam3man3mao3map3mar3mas2lat4wau1vav3maw3say4waz2lbk2sbl3s'fof'6obo2lbp3mbq2xbr1tbs2lbu1zbv3mbz2wck4s202k3mcm4scn4sco4scp4scq5tcr4mcs3xct3xcu3xcv3xcw2l2m2tcy2lcz2ldl4sdm4sdn4sdo4sdp4sdq4sds4sdt4sdu4sdv4sdw4sdz3mek2wel2wem2wen2weo2wep2weq4mer2wes2wet2weu2wev2wew1wex1wey1wez1wfl3mfm3mfn3mfo3mfp3mfq3mfr3sfs3mft3mfu3mfv3mfw3mfz3m203k6o212m6m2dw2l2cq2l3t3m3u1w17s4s19m3m}'kerning'{cl{4qs5ku17sw5ou5qy5rw201ss5tw201ws}201s{201ss}201t{ckw4lwcmwcnwcowcpwclw4wu201ts}2k{201ts}2w{4qs5kw5os5qx5ru17sx5tx}2x{17sw5tw5ou5qu}2y{4qs5kw5os5qx5ru17sx5tx}'fof'-6o7t{ckuclucmucnucoucpu4lu5os5rs}3u{17su5tu5qs}3v{17su5tu5qs}7p{17sw5tw5qs}ck{4qs5ku17sw5ou5qy5rw201ss5tw201ws}4l{4qs5ku17sw5ou5qy5rw201ss5tw201ws}cm{4qs5ku17sw5ou5qy5rw201ss5tw201ws}cn{4qs5ku17sw5ou5qy5rw201ss5tw201ws}co{4qs5ku17sw5ou5qy5rw201ss5tw201ws}cp{4qs5ku17sw5ou5qy5rw201ss5tw201ws}6l{17su5tu5os5qw5rs}17s{2ktclvcmvcnvcovcpv4lv4wuckv}5o{ckwclwcmwcnwcowcpw4lw4wu}5q{ckyclycmycnycoycpy4ly4wu5ms}5r{cktcltcmtcntcotcpt4lt4ws}5t{2ktclvcmvcnvcovcpv4lv4wuckv}7q{cksclscmscnscoscps4ls}6p{17su5tu5qw5rs}ek{5qs5rs}el{17su5tu5os5qw5rs}em{17su5tu5os5qs5rs}en{17su5qs5rs}eo{5qs5rs}ep{17su5tu5os5qw5rs}es{5qs}et{17su5tu5qw5rs}eu{17su5tu5qs5rs}ev{5qs}6z{17sv5tv5os5qx5rs}fm{5os5qt5rs}fn{17sv5tv5os5qx5rs}fo{17sv5tv5os5qx5rs}fp{5os5qt5rs}fq{5os5qt5rs}7r{ckuclucmucnucoucpu4lu5os}fs{17sv5tv5os5qx5rs}ft{17ss5ts5qs}fu{17sw5tw5qs}fv{17sw5tw5qs}fw{17ss5ts5qs}fz{ckuclucmucnucoucpu4lu5os5rs}}}"), "Helvetica-Oblique": o("{'widths'{k3p2q4mcx1w201n3r201o6o201s1q201t1q201u1q201w2l201x2l201y2l2k1w2l1w202m2n2n3r2o3r2p5t202q6o2r1n2s2l2t2l2u2r2v3u2w1w2x2l2y1w2z1w3k3r3l3r3m3r3n3r3o3r3p3r3q3r3r3r3s3r203t2l203u2l3v1w3w3u3x3u3y3u3z3r4k6p4l4m4m4m4n4s4o4s4p4m4q3x4r4y4s4s4t1w4u3m4v4m4w3r4x5n4y4s4z4y5k4m5l4y5m4s5n4m5o3x5p4s5q4m5r5y5s4m5t4m5u3x5v1w5w1w5x1w5y2z5z3r6k2l6l3r6m3r6n3m6o3r6p3r6q1w6r3r6s3r6t1q6u1q6v3m6w1q6x5n6y3r6z3r7k3r7l3r7m2l7n3m7o1w7p3r7q3m7r4s7s3m7t3m7u3m7v2l7w1u7x2l7y3u202l3rcl4mal2lam3ran3rao3rap3rar3ras2lat4tau2pav3raw3uay4taz2lbk2sbl3u'fof'6obo2lbp3rbr1wbs2lbu2obv3rbz3xck4m202k3rcm4mcn4mco4mcp4mcq6ocr4scs4mct4mcu4mcv4mcw1w2m2ncy1wcz1wdl4sdm4ydn4ydo4ydp4ydq4yds4ydt4sdu4sdv4sdw4sdz3xek3rel3rem3ren3reo3rep3req5ter3mes3ret3reu3rev3rew1wex1wey1wez1wfl3rfm3rfn3rfo3rfp3rfq3rfr3ufs3xft3rfu3rfv3rfw3rfz3m203k6o212m6o2dw2l2cq2l3t3r3u1w17s4m19m3r}'kerning'{5q{4wv}cl{4qs5kw5ow5qs17sv5tv}201t{2wu4w1k2yu}201x{2wu4wy2yu}17s{2ktclucmucnu4otcpu4lu4wycoucku}2w{7qs4qz5k1m17sy5ow5qx5rsfsu5ty7tufzu}2x{17sy5ty5oy5qs}2y{7qs4qz5k1m17sy5ow5qx5rsfsu5ty7tufzu}'fof'-6o7p{17sv5tv5ow}ck{4qs5kw5ow5qs17sv5tv}4l{4qs5kw5ow5qs17sv5tv}cm{4qs5kw5ow5qs17sv5tv}cn{4qs5kw5ow5qs17sv5tv}co{4qs5kw5ow5qs17sv5tv}cp{4qs5kw5ow5qs17sv5tv}6l{17sy5ty5ow}do{17st5tt}4z{17st5tt}7s{fst}dm{17st5tt}dn{17st5tt}5o{ckwclwcmwcnwcowcpw4lw4wv}dp{17st5tt}dq{17st5tt}7t{5ow}ds{17st5tt}5t{2ktclucmucnu4otcpu4lu4wycoucku}fu{17sv5tv5ow}6p{17sy5ty5ow5qs}ek{17sy5ty5ow}el{17sy5ty5ow}em{17sy5ty5ow}en{5ty}eo{17sy5ty5ow}ep{17sy5ty5ow}es{17sy5ty5qs}et{17sy5ty5ow5qs}eu{17sy5ty5ow5qs}ev{17sy5ty5ow5qs}6z{17sy5ty5ow5qs}fm{17sy5ty5ow5qs}fn{17sy5ty5ow5qs}fo{17sy5ty5ow5qs}fp{17sy5ty5qs}fq{17sy5ty5ow5qs}7r{5ow}fs{17sy5ty5ow5qs}ft{17sv5tv5ow}7m{5ow}fv{17sv5tv5ow}fw{17sv5tv5ow}}}") } };
  t.events.push(["addFont", function(g) {
    var w = g.font, p = h.Unicode[w.postScriptName];
    p && (w.metadata.Unicode = {}, w.metadata.Unicode.widths = p.widths, w.metadata.Unicode.kerning = p.kerning);
    var m = d.Unicode[w.postScriptName];
    m && (w.metadata.Unicode.encoding = m, w.encoding = m.codePages[0]);
  }]);
}(Fe.API), /**
 * @license
 * Licensed under the MIT License.
 * http://opensource.org/licenses/mit-license
 */
function(t) {
  var e = function(A) {
    for (var r = A.length, n = new Uint8Array(r), s = 0; s < r; s++) n[s] = A.charCodeAt(s);
    return n;
  };
  t.API.events.push(["addFont", function(A) {
    var r = void 0, n = A.font, s = A.instance;
    if (!n.isStandardFont) {
      if (s === void 0) throw new Error("Font does not exist in vFS, import fonts or remove declaration doc.addFont('" + n.postScriptName + "').");
      if (typeof (r = s.existsFileInVFS(n.postScriptName) === !1 ? s.loadFile(n.postScriptName) : s.getFileFromVFS(n.postScriptName)) != "string") throw new Error("Font is not stored as string-data in vFS, import fonts or remove declaration doc.addFont('" + n.postScriptName + "').");
      (function(a, o) {
        o = /^\x00\x01\x00\x00/.test(o) ? e(o) : e(oa(o)), a.metadata = t.API.TTFFont.open(o), a.metadata.Unicode = a.metadata.Unicode || { encoding: {}, kerning: {}, widths: [] }, a.metadata.glyIdsUsed = [0];
      })(n, r);
    }
  }]);
}(Fe), /** @license
 * Copyright (c) 2012 Willow Systems Corporation, https://github.com/willowsystems
 *
 * Permission is hereby granted, free of charge, to any person obtaining
 * a copy of this software and associated documentation files (the
 * "Software"), to deal in the Software without restriction, including
 * without limitation the rights to use, copy, modify, merge, publish,
 * distribute, sublicense, and/or sell copies of the Software, and to
 * permit persons to whom the Software is furnished to do so, subject to
 * the following conditions:
 *
 * The above copyright notice and this permission notice shall be
 * included in all copies or substantial portions of the Software.
 *
 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
 * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
 * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
 * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 * ====================================================================
 */
function(t) {
  function e() {
    return (Qe.canvg ? Promise.resolve(Qe.canvg) : import("./index.es-C-aB3hUm.js")).catch(function(A) {
      return Promise.reject(new Error("Could not load canvg: " + A));
    }).then(function(A) {
      return A.default ? A.default : A;
    });
  }
  Fe.API.addSvgAsImage = function(A, r, n, s, a, o, c, d) {
    if (isNaN(r) || isNaN(n)) throw ot.error("jsPDF.addSvgAsImage: Invalid coordinates", arguments), new Error("Invalid coordinates passed to jsPDF.addSvgAsImage");
    if (isNaN(s) || isNaN(a)) throw ot.error("jsPDF.addSvgAsImage: Invalid measurements", arguments), new Error("Invalid measurements (width and/or height) passed to jsPDF.addSvgAsImage");
    var h = document.createElement("canvas");
    h.width = s, h.height = a;
    var g = h.getContext("2d");
    g.fillStyle = "#fff", g.fillRect(0, 0, h.width, h.height);
    var w = { ignoreMouse: !0, ignoreAnimation: !0, ignoreDimensions: !0 }, p = this;
    return e().then(function(m) {
      return m.fromString(g, A, w);
    }, function() {
      return Promise.reject(new Error("Could not load canvg."));
    }).then(function(m) {
      return m.render(w);
    }).then(function() {
      p.addImage(h.toDataURL("image/jpeg", 1), r, n, s, a, c, d);
    });
  };
}(), Fe.API.putTotalPages = function(t) {
  var e, A = 0;
  parseInt(this.internal.getFont().id.substr(1), 10) < 15 ? (e = new RegExp(t, "g"), A = this.internal.getNumberOfPages()) : (e = new RegExp(this.pdfEscape16(t, this.internal.getFont()), "g"), A = this.pdfEscape16(this.internal.getNumberOfPages() + "", this.internal.getFont()));
  for (var r = 1; r <= this.internal.getNumberOfPages(); r++) for (var n = 0; n < this.internal.pages[r].length; n++) this.internal.pages[r][n] = this.internal.pages[r][n].replace(e, A);
  return this;
}, Fe.API.viewerPreferences = function(t, e) {
  var A;
  t = t || {}, e = e || !1;
  var r, n, s, a = { HideToolbar: { defaultValue: !1, value: !1, type: "boolean", explicitSet: !1, valueSet: [!0, !1], pdfVersion: 1.3 }, HideMenubar: { defaultValue: !1, value: !1, type: "boolean", explicitSet: !1, valueSet: [!0, !1], pdfVersion: 1.3 }, HideWindowUI: { defaultValue: !1, value: !1, type: "boolean", explicitSet: !1, valueSet: [!0, !1], pdfVersion: 1.3 }, FitWindow: { defaultValue: !1, value: !1, type: "boolean", explicitSet: !1, valueSet: [!0, !1], pdfVersion: 1.3 }, CenterWindow: { defaultValue: !1, value: !1, type: "boolean", explicitSet: !1, valueSet: [!0, !1], pdfVersion: 1.3 }, DisplayDocTitle: { defaultValue: !1, value: !1, type: "boolean", explicitSet: !1, valueSet: [!0, !1], pdfVersion: 1.4 }, NonFullScreenPageMode: { defaultValue: "UseNone", value: "UseNone", type: "name", explicitSet: !1, valueSet: ["UseNone", "UseOutlines", "UseThumbs", "UseOC"], pdfVersion: 1.3 }, Direction: { defaultValue: "L2R", value: "L2R", type: "name", explicitSet: !1, valueSet: ["L2R", "R2L"], pdfVersion: 1.3 }, ViewArea: { defaultValue: "CropBox", value: "CropBox", type: "name", explicitSet: !1, valueSet: ["MediaBox", "CropBox", "TrimBox", "BleedBox", "ArtBox"], pdfVersion: 1.4 }, ViewClip: { defaultValue: "CropBox", value: "CropBox", type: "name", explicitSet: !1, valueSet: ["MediaBox", "CropBox", "TrimBox", "BleedBox", "ArtBox"], pdfVersion: 1.4 }, PrintArea: { defaultValue: "CropBox", value: "CropBox", type: "name", explicitSet: !1, valueSet: ["MediaBox", "CropBox", "TrimBox", "BleedBox", "ArtBox"], pdfVersion: 1.4 }, PrintClip: { defaultValue: "CropBox", value: "CropBox", type: "name", explicitSet: !1, valueSet: ["MediaBox", "CropBox", "TrimBox", "BleedBox", "ArtBox"], pdfVersion: 1.4 }, PrintScaling: { defaultValue: "AppDefault", value: "AppDefault", type: "name", explicitSet: !1, valueSet: ["AppDefault", "None"], pdfVersion: 1.6 }, Duplex: { defaultValue: "", value: "none", type: "name", explicitSet: !1, valueSet: ["Simplex", "DuplexFlipShortEdge", "DuplexFlipLongEdge", "none"], pdfVersion: 1.7 }, PickTrayByPDFSize: { defaultValue: !1, value: !1, type: "boolean", explicitSet: !1, valueSet: [!0, !1], pdfVersion: 1.7 }, PrintPageRange: { defaultValue: "", value: "", type: "array", explicitSet: !1, valueSet: null, pdfVersion: 1.7 }, NumCopies: { defaultValue: 1, value: 1, type: "integer", explicitSet: !1, valueSet: null, pdfVersion: 1.7 } }, o = Object.keys(a), c = [], d = 0, h = 0, g = 0;
  function w(m, F) {
    var D, v = !1;
    for (D = 0; D < m.length; D += 1) m[D] === F && (v = !0);
    return v;
  }
  if (this.internal.viewerpreferences === void 0 && (this.internal.viewerpreferences = {}, this.internal.viewerpreferences.configuration = JSON.parse(JSON.stringify(a)), this.internal.viewerpreferences.isSubscribed = !1), A = this.internal.viewerpreferences.configuration, t === "reset" || e === !0) {
    var p = o.length;
    for (g = 0; g < p; g += 1) A[o[g]].value = A[o[g]].defaultValue, A[o[g]].explicitSet = !1;
  }
  if (et(t) === "object") {
    for (n in t) if (s = t[n], w(o, n) && s !== void 0) {
      if (A[n].type === "boolean" && typeof s == "boolean") A[n].value = s;
      else if (A[n].type === "name" && w(A[n].valueSet, s)) A[n].value = s;
      else if (A[n].type === "integer" && Number.isInteger(s)) A[n].value = s;
      else if (A[n].type === "array") {
        for (d = 0; d < s.length; d += 1) if (r = !0, s[d].length === 1 && typeof s[d][0] == "number") c.push(String(s[d] - 1));
        else if (s[d].length > 1) {
          for (h = 0; h < s[d].length; h += 1) typeof s[d][h] != "number" && (r = !1);
          r === !0 && c.push([s[d][0] - 1, s[d][1] - 1].join(" "));
        }
        A[n].value = "[" + c.join(" ") + "]";
      } else A[n].value = A[n].defaultValue;
      A[n].explicitSet = !0;
    }
  }
  return this.internal.viewerpreferences.isSubscribed === !1 && (this.internal.events.subscribe("putCatalog", function() {
    var m, F = [];
    for (m in A) A[m].explicitSet === !0 && (A[m].type === "name" ? F.push("/" + m + " /" + A[m].value) : F.push("/" + m + " " + A[m].value));
    F.length !== 0 && this.internal.write(`/ViewerPreferences
<<
` + F.join(`
`) + `
>>`);
  }), this.internal.viewerpreferences.isSubscribed = !0), this.internal.viewerpreferences.configuration = A, this;
}, /** ====================================================================
 * @license
 * jsPDF XMP metadata plugin
 * Copyright (c) 2016 Jussi Utunen, u-jussi@suomi24.fi
 *
 * Permission is hereby granted, free of charge, to any person obtaining
 * a copy of this software and associated documentation files (the
 * "Software"), to deal in the Software without restriction, including
 * without limitation the rights to use, copy, modify, merge, publish,
 * distribute, sublicense, and/or sell copies of the Software, and to
 * permit persons to whom the Software is furnished to do so, subject to
 * the following conditions:
 *
 * The above copyright notice and this permission notice shall be
 * included in all copies or substantial portions of the Software.
 *
 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
 * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
 * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
 * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 * ====================================================================
 */
function(t) {
  var e = function() {
    var r = '<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"><rdf:Description rdf:about="" xmlns:jspdf="' + this.internal.__metadata__.namespaceuri + '"><jspdf:metadata>', n = unescape(encodeURIComponent('<x:xmpmeta xmlns:x="adobe:ns:meta/">')), s = unescape(encodeURIComponent(r)), a = unescape(encodeURIComponent(this.internal.__metadata__.metadata)), o = unescape(encodeURIComponent("</jspdf:metadata></rdf:Description></rdf:RDF>")), c = unescape(encodeURIComponent("</x:xmpmeta>")), d = s.length + a.length + o.length + n.length + c.length;
    this.internal.__metadata__.metadata_object_number = this.internal.newObject(), this.internal.write("<< /Type /Metadata /Subtype /XML /Length " + d + " >>"), this.internal.write("stream"), this.internal.write(n + s + a + o + c), this.internal.write("endstream"), this.internal.write("endobj");
  }, A = function() {
    this.internal.__metadata__.metadata_object_number && this.internal.write("/Metadata " + this.internal.__metadata__.metadata_object_number + " 0 R");
  };
  t.addMetadata = function(r, n) {
    return this.internal.__metadata__ === void 0 && (this.internal.__metadata__ = { metadata: r, namespaceuri: n || "http://jspdf.default.namespaceuri/" }, this.internal.events.subscribe("putCatalog", A), this.internal.events.subscribe("postPutResources", e)), this;
  };
}(Fe.API), function(t) {
  var e = t.API, A = e.pdfEscape16 = function(s, a) {
    for (var o, c = a.metadata.Unicode.widths, d = ["", "0", "00", "000", "0000"], h = [""], g = 0, w = s.length; g < w; ++g) {
      if (o = a.metadata.characterToGlyph(s.charCodeAt(g)), a.metadata.glyIdsUsed.push(o), a.metadata.toUnicode[o] = s.charCodeAt(g), c.indexOf(o) == -1 && (c.push(o), c.push([parseInt(a.metadata.widthOfGlyph(o), 10)])), o == "0") return h.join("");
      o = o.toString(16), h.push(d[4 - o.length], o);
    }
    return h.join("");
  }, r = function(s) {
    var a, o, c, d, h, g, w;
    for (h = `/CIDInit /ProcSet findresource begin
12 dict begin
begincmap
/CIDSystemInfo <<
  /Registry (Adobe)
  /Ordering (UCS)
  /Supplement 0
>> def
/CMapName /Adobe-Identity-UCS def
/CMapType 2 def
1 begincodespacerange
<0000><ffff>
endcodespacerange`, c = [], g = 0, w = (o = Object.keys(s).sort(function(p, m) {
      return p - m;
    })).length; g < w; g++) a = o[g], c.length >= 100 && (h += `
` + c.length + ` beginbfchar
` + c.join(`
`) + `
endbfchar`, c = []), s[a] !== void 0 && s[a] !== null && typeof s[a].toString == "function" && (d = ("0000" + s[a].toString(16)).slice(-4), a = ("0000" + (+a).toString(16)).slice(-4), c.push("<" + a + "><" + d + ">"));
    return c.length && (h += `
` + c.length + ` beginbfchar
` + c.join(`
`) + `
endbfchar
`), h += `endcmap
CMapName currentdict /CMap defineresource pop
end
end`;
  };
  e.events.push(["putFont", function(s) {
    (function(a) {
      var o = a.font, c = a.out, d = a.newObject, h = a.putStream;
      if (o.metadata instanceof t.API.TTFFont && o.encoding === "Identity-H") {
        for (var g = o.metadata.Unicode.widths, w = o.metadata.subset.encode(o.metadata.glyIdsUsed, 1), p = "", m = 0; m < w.length; m++) p += String.fromCharCode(w[m]);
        var F = d();
        h({ data: p, addLength1: !0, objectId: F }), c("endobj");
        var D = d();
        h({ data: r(o.metadata.toUnicode), addLength1: !0, objectId: D }), c("endobj");
        var v = d();
        c("<<"), c("/Type /FontDescriptor"), c("/FontName /" + ai(o.fontName)), c("/FontFile2 " + F + " 0 R"), c("/FontBBox " + t.API.PDFObject.convert(o.metadata.bbox)), c("/Flags " + o.metadata.flags), c("/StemV " + o.metadata.stemV), c("/ItalicAngle " + o.metadata.italicAngle), c("/Ascent " + o.metadata.ascender), c("/Descent " + o.metadata.decender), c("/CapHeight " + o.metadata.capHeight), c(">>"), c("endobj");
        var E = d();
        c("<<"), c("/Type /Font"), c("/BaseFont /" + ai(o.fontName)), c("/FontDescriptor " + v + " 0 R"), c("/W " + t.API.PDFObject.convert(g)), c("/CIDToGIDMap /Identity"), c("/DW 1000"), c("/Subtype /CIDFontType2"), c("/CIDSystemInfo"), c("<<"), c("/Supplement 0"), c("/Registry (Adobe)"), c("/Ordering (" + o.encoding + ")"), c(">>"), c(">>"), c("endobj"), o.objectNumber = d(), c("<<"), c("/Type /Font"), c("/Subtype /Type0"), c("/ToUnicode " + D + " 0 R"), c("/BaseFont /" + ai(o.fontName)), c("/Encoding /" + o.encoding), c("/DescendantFonts [" + E + " 0 R]"), c(">>"), c("endobj"), o.isAlreadyPutted = !0;
      }
    })(s);
  }]), e.events.push(["putFont", function(s) {
    (function(a) {
      var o = a.font, c = a.out, d = a.newObject, h = a.putStream;
      if (o.metadata instanceof t.API.TTFFont && o.encoding === "WinAnsiEncoding") {
        for (var g = o.metadata.rawData, w = "", p = 0; p < g.length; p++) w += String.fromCharCode(g[p]);
        var m = d();
        h({ data: w, addLength1: !0, objectId: m }), c("endobj");
        var F = d();
        h({ data: r(o.metadata.toUnicode), addLength1: !0, objectId: F }), c("endobj");
        var D = d();
        c("<<"), c("/Descent " + o.metadata.decender), c("/CapHeight " + o.metadata.capHeight), c("/StemV " + o.metadata.stemV), c("/Type /FontDescriptor"), c("/FontFile2 " + m + " 0 R"), c("/Flags 96"), c("/FontBBox " + t.API.PDFObject.convert(o.metadata.bbox)), c("/FontName /" + ai(o.fontName)), c("/ItalicAngle " + o.metadata.italicAngle), c("/Ascent " + o.metadata.ascender), c(">>"), c("endobj"), o.objectNumber = d();
        for (var v = 0; v < o.metadata.hmtx.widths.length; v++) o.metadata.hmtx.widths[v] = parseInt(o.metadata.hmtx.widths[v] * (1e3 / o.metadata.head.unitsPerEm));
        c("<</Subtype/TrueType/Type/Font/ToUnicode " + F + " 0 R/BaseFont/" + ai(o.fontName) + "/FontDescriptor " + D + " 0 R/Encoding/" + o.encoding + " /FirstChar 29 /LastChar 255 /Widths " + t.API.PDFObject.convert(o.metadata.hmtx.widths) + ">>"), c("endobj"), o.isAlreadyPutted = !0;
      }
    })(s);
  }]);
  var n = function(s) {
    var a, o = s.text || "", c = s.x, d = s.y, h = s.options || {}, g = s.mutex || {}, w = g.pdfEscape, p = g.activeFontKey, m = g.fonts, F = p, D = "", v = 0, E = "", P = m[F].encoding;
    if (m[F].encoding !== "Identity-H") return { text: o, x: c, y: d, options: h, mutex: g };
    for (E = o, F = p, Array.isArray(o) && (E = o[0]), v = 0; v < E.length; v += 1) m[F].metadata.hasOwnProperty("cmap") && (a = m[F].metadata.cmap.unicode.codeMap[E[v].charCodeAt(0)]), a || E[v].charCodeAt(0) < 256 && m[F].metadata.hasOwnProperty("Unicode") ? D += E[v] : D += "";
    var V = "";
    return parseInt(F.slice(1)) < 14 || P === "WinAnsiEncoding" ? V = w(D, F).split("").map(function(J) {
      return J.charCodeAt(0).toString(16);
    }).join("") : P === "Identity-H" && (V = A(D, m[F])), g.isHex = !0, { text: V, x: c, y: d, options: h, mutex: g };
  };
  e.events.push(["postProcessText", function(s) {
    var a = s.text || "", o = [], c = { text: a, x: s.x, y: s.y, options: s.options, mutex: s.mutex };
    if (Array.isArray(a)) {
      var d = 0;
      for (d = 0; d < a.length; d += 1) Array.isArray(a[d]) && a[d].length === 3 ? o.push([n(Object.assign({}, c, { text: a[d][0] })).text, a[d][1], a[d][2]]) : o.push(n(Object.assign({}, c, { text: a[d] })).text);
      s.text = o;
    } else s.text = n(Object.assign({}, c, { text: a })).text;
  }]);
}(Fe), /**
 * @license
 * jsPDF virtual FileSystem functionality
 *
 * Licensed under the MIT License.
 * http://opensource.org/licenses/mit-license
 */
function(t) {
  var e = function() {
    return this.internal.vFS === void 0 && (this.internal.vFS = {}), !0;
  };
  t.existsFileInVFS = function(A) {
    return e.call(this), this.internal.vFS[A] !== void 0;
  }, t.addFileToVFS = function(A, r) {
    return e.call(this), this.internal.vFS[A] = r, this;
  }, t.getFileFromVFS = function(A) {
    return e.call(this), this.internal.vFS[A] !== void 0 ? this.internal.vFS[A] : null;
  };
}(Fe.API), /**
 * @license
 * Unicode Bidi Engine based on the work of Alex Shensis (@asthensis)
 * MIT License
 */
function(t) {
  t.__bidiEngine__ = t.prototype.__bidiEngine__ = function(r) {
    var n, s, a, o, c, d, h, g = e, w = [[0, 3, 0, 1, 0, 0, 0], [0, 3, 0, 1, 2, 2, 0], [0, 3, 0, 17, 2, 0, 1], [0, 3, 5, 5, 4, 1, 0], [0, 3, 21, 21, 4, 0, 1], [0, 3, 5, 5, 4, 2, 0]], p = [[2, 0, 1, 1, 0, 1, 0], [2, 0, 1, 1, 0, 2, 0], [2, 0, 2, 1, 3, 2, 0], [2, 0, 2, 33, 3, 1, 1]], m = { L: 0, R: 1, EN: 2, AN: 3, N: 4, B: 5, S: 6 }, F = { 0: 0, 5: 1, 6: 2, 7: 3, 32: 4, 251: 5, 254: 6, 255: 7 }, D = ["(", ")", "(", "<", ">", "<", "[", "]", "[", "{", "}", "{", "«", "»", "«", "‹", "›", "‹", "⁅", "⁆", "⁅", "⁽", "⁾", "⁽", "₍", "₎", "₍", "≤", "≥", "≤", "〈", "〉", "〈", "﹙", "﹚", "﹙", "﹛", "﹜", "﹛", "﹝", "﹞", "﹝", "﹤", "﹥", "﹤"], v = new RegExp(/^([1-4|9]|1[0-9]|2[0-9]|3[0168]|4[04589]|5[012]|7[78]|159|16[0-9]|17[0-2]|21[569]|22[03489]|250)$/), E = !1, P = 0;
    this.__bidiEngine__ = {};
    var V = function(I) {
      var Q = I.charCodeAt(), k = Q >> 8, U = F[k];
      return U !== void 0 ? g[256 * U + (255 & Q)] : k === 252 || k === 253 ? "AL" : v.test(k) ? "L" : k === 8 ? "R" : "N";
    }, J = function(I) {
      for (var Q, k = 0; k < I.length; k++) {
        if ((Q = V(I.charAt(k))) === "L") return !1;
        if (Q === "R") return !0;
      }
      return !1;
    }, Y = function(I, Q, k, U) {
      var R, X, AA, z, aA = Q[U];
      switch (aA) {
        case "L":
        case "R":
          E = !1;
          break;
        case "N":
        case "AN":
          break;
        case "EN":
          E && (aA = "AN");
          break;
        case "AL":
          E = !0, aA = "R";
          break;
        case "WS":
          aA = "N";
          break;
        case "CS":
          U < 1 || U + 1 >= Q.length || (R = k[U - 1]) !== "EN" && R !== "AN" || (X = Q[U + 1]) !== "EN" && X !== "AN" ? aA = "N" : E && (X = "AN"), aA = X === R ? X : "N";
          break;
        case "ES":
          aA = (R = U > 0 ? k[U - 1] : "B") === "EN" && U + 1 < Q.length && Q[U + 1] === "EN" ? "EN" : "N";
          break;
        case "ET":
          if (U > 0 && k[U - 1] === "EN") {
            aA = "EN";
            break;
          }
          if (E) {
            aA = "N";
            break;
          }
          for (AA = U + 1, z = Q.length; AA < z && Q[AA] === "ET"; ) AA++;
          aA = AA < z && Q[AA] === "EN" ? "EN" : "N";
          break;
        case "NSM":
          if (a && !o) {
            for (z = Q.length, AA = U + 1; AA < z && Q[AA] === "NSM"; ) AA++;
            if (AA < z) {
              var rA = I[U], QA = rA >= 1425 && rA <= 2303 || rA === 64286;
              if (R = Q[AA], QA && (R === "R" || R === "AL")) {
                aA = "R";
                break;
              }
            }
          }
          aA = U < 1 || (R = Q[U - 1]) === "B" ? "N" : k[U - 1];
          break;
        case "B":
          E = !1, n = !0, aA = P;
          break;
        case "S":
          s = !0, aA = "N";
          break;
        case "LRE":
        case "RLE":
        case "LRO":
        case "RLO":
        case "PDF":
          E = !1;
          break;
        case "BN":
          aA = "N";
      }
      return aA;
    }, W = function(I, Q, k) {
      var U = I.split("");
      return k && O(U, k, { hiLevel: P }), U.reverse(), Q && Q.reverse(), U.join("");
    }, O = function(I, Q, k) {
      var U, R, X, AA, z, aA = -1, rA = I.length, QA = 0, b = [], T = P ? p : w, _ = [];
      for (E = !1, n = !1, s = !1, R = 0; R < rA; R++) _[R] = V(I[R]);
      for (X = 0; X < rA; X++) {
        if (z = QA, b[X] = Y(I, _, b, X), U = 240 & (QA = T[z][m[b[X]]]), QA &= 15, Q[X] = AA = T[QA][5], U > 0) if (U === 16) {
          for (R = aA; R < X; R++) Q[R] = 1;
          aA = -1;
        } else aA = -1;
        if (T[QA][6]) aA === -1 && (aA = X);
        else if (aA > -1) {
          for (R = aA; R < X; R++) Q[R] = AA;
          aA = -1;
        }
        _[X] === "B" && (Q[X] = 0), k.hiLevel |= AA;
      }
      s && function(j, $, uA) {
        for (var hA = 0; hA < uA; hA++) if (j[hA] === "S") {
          $[hA] = P;
          for (var mA = hA - 1; mA >= 0 && j[mA] === "WS"; mA--) $[mA] = P;
        }
      }(_, Q, rA);
    }, q = function(I, Q, k, U, R) {
      if (!(R.hiLevel < I)) {
        if (I === 1 && P === 1 && !n) return Q.reverse(), void (k && k.reverse());
        for (var X, AA, z, aA, rA = Q.length, QA = 0; QA < rA; ) {
          if (U[QA] >= I) {
            for (z = QA + 1; z < rA && U[z] >= I; ) z++;
            for (aA = QA, AA = z - 1; aA < AA; aA++, AA--) X = Q[aA], Q[aA] = Q[AA], Q[AA] = X, k && (X = k[aA], k[aA] = k[AA], k[AA] = X);
            QA = z;
          }
          QA++;
        }
      }
    }, lA = function(I, Q, k) {
      var U = I.split(""), R = { hiLevel: P };
      return k || (k = []), O(U, k, R), function(X, AA, z) {
        if (z.hiLevel !== 0 && h) for (var aA, rA = 0; rA < X.length; rA++) AA[rA] === 1 && (aA = D.indexOf(X[rA])) >= 0 && (X[rA] = D[aA + 1]);
      }(U, k, R), q(2, U, Q, k, R), q(1, U, Q, k, R), U.join("");
    };
    return this.__bidiEngine__.doBidiReorder = function(I, Q, k) {
      if (function(R, X) {
        if (X) for (var AA = 0; AA < R.length; AA++) X[AA] = AA;
        o === void 0 && (o = J(R)), d === void 0 && (d = J(R));
      }(I, Q), a || !c || d) if (a && c && o ^ d) P = o ? 1 : 0, I = W(I, Q, k);
      else if (!a && c && d) P = o ? 1 : 0, I = lA(I, Q, k), I = W(I, Q);
      else if (!a || o || c || d) {
        if (a && !c && o ^ d) I = W(I, Q), o ? (P = 0, I = lA(I, Q, k)) : (P = 1, I = lA(I, Q, k), I = W(I, Q));
        else if (a && o && !c && d) P = 1, I = lA(I, Q, k), I = W(I, Q);
        else if (!a && !c && o ^ d) {
          var U = h;
          o ? (P = 1, I = lA(I, Q, k), P = 0, h = !1, I = lA(I, Q, k), h = U) : (P = 0, I = lA(I, Q, k), I = W(I, Q), P = 1, h = !1, I = lA(I, Q, k), h = U, I = W(I, Q));
        }
      } else P = 0, I = lA(I, Q, k);
      else P = o ? 1 : 0, I = lA(I, Q, k);
      return I;
    }, this.__bidiEngine__.setOptions = function(I) {
      I && (a = I.isInputVisual, c = I.isOutputVisual, o = I.isInputRtl, d = I.isOutputRtl, h = I.isSymmetricSwapping);
    }, this.__bidiEngine__.setOptions(r), this.__bidiEngine__;
  };
  var e = ["BN", "BN", "BN", "BN", "BN", "BN", "BN", "BN", "BN", "S", "B", "S", "WS", "B", "BN", "BN", "BN", "BN", "BN", "BN", "BN", "BN", "BN", "BN", "BN", "BN", "BN", "BN", "B", "B", "B", "S", "WS", "N", "N", "ET", "ET", "ET", "N", "N", "N", "N", "N", "ES", "CS", "ES", "CS", "CS", "EN", "EN", "EN", "EN", "EN", "EN", "EN", "EN", "EN", "EN", "CS", "N", "N", "N", "N", "N", "N", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "N", "N", "N", "N", "N", "N", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "N", "N", "N", "N", "BN", "BN", "BN", "BN", "BN", "BN", "B", "BN", "BN", "BN", "BN", "BN", "BN", "BN", "BN", "BN", "BN", "BN", "BN", "BN", "BN", "BN", "BN", "BN", "BN", "BN", "BN", "BN", "BN", "BN", "BN", "BN", "BN", "CS", "N", "ET", "ET", "ET", "ET", "N", "N", "N", "N", "L", "N", "N", "BN", "N", "N", "ET", "ET", "EN", "EN", "N", "L", "N", "N", "N", "EN", "L", "N", "N", "N", "N", "N", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "N", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "N", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "N", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "N", "N", "L", "L", "L", "L", "L", "L", "L", "N", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "N", "L", "N", "N", "N", "N", "N", "ET", "N", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "R", "NSM", "R", "NSM", "NSM", "R", "NSM", "NSM", "R", "NSM", "N", "N", "N", "N", "N", "N", "N", "N", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "N", "N", "N", "N", "N", "R", "R", "R", "R", "R", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "AN", "AN", "AN", "AN", "AN", "AN", "N", "N", "AL", "ET", "ET", "AL", "CS", "AL", "N", "N", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "AL", "AL", "N", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "AN", "AN", "AN", "AN", "AN", "AN", "AN", "AN", "AN", "AN", "ET", "AN", "AN", "AL", "AL", "AL", "NSM", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "AN", "N", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "AL", "AL", "NSM", "NSM", "N", "NSM", "NSM", "NSM", "NSM", "AL", "AL", "EN", "EN", "EN", "EN", "EN", "EN", "EN", "EN", "EN", "EN", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "N", "AL", "AL", "NSM", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "N", "N", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "AL", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "R", "R", "N", "N", "N", "N", "R", "N", "N", "N", "N", "N", "WS", "WS", "WS", "WS", "WS", "WS", "WS", "WS", "WS", "WS", "WS", "BN", "BN", "BN", "L", "R", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "WS", "B", "LRE", "RLE", "PDF", "LRO", "RLO", "CS", "ET", "ET", "ET", "ET", "ET", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "CS", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "WS", "BN", "BN", "BN", "BN", "BN", "N", "LRI", "RLI", "FSI", "PDI", "BN", "BN", "BN", "BN", "BN", "BN", "EN", "L", "N", "N", "EN", "EN", "EN", "EN", "EN", "EN", "ES", "ES", "N", "N", "N", "L", "EN", "EN", "EN", "EN", "EN", "EN", "EN", "EN", "EN", "EN", "ES", "ES", "N", "N", "N", "N", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "N", "N", "N", "ET", "ET", "ET", "ET", "ET", "ET", "ET", "ET", "ET", "ET", "ET", "ET", "ET", "ET", "ET", "ET", "ET", "ET", "ET", "ET", "ET", "ET", "ET", "ET", "ET", "ET", "ET", "ET", "ET", "ET", "ET", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "L", "L", "L", "L", "L", "L", "L", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "L", "L", "L", "L", "L", "N", "N", "N", "N", "N", "R", "NSM", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "ES", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "N", "R", "R", "R", "R", "R", "N", "R", "N", "R", "R", "N", "R", "R", "N", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "CS", "N", "CS", "N", "N", "CS", "N", "N", "N", "N", "N", "N", "N", "N", "N", "ET", "N", "N", "ES", "ES", "N", "N", "N", "N", "N", "ET", "ET", "N", "N", "N", "N", "N", "AL", "AL", "AL", "AL", "AL", "N", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "N", "N", "BN", "N", "N", "N", "ET", "ET", "ET", "N", "N", "N", "N", "N", "ES", "CS", "ES", "CS", "CS", "EN", "EN", "EN", "EN", "EN", "EN", "EN", "EN", "EN", "EN", "CS", "N", "N", "N", "N", "N", "N", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "N", "N", "N", "N", "N", "N", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "N", "N", "N", "L", "L", "L", "L", "L", "L", "N", "N", "L", "L", "L", "L", "L", "L", "N", "N", "L", "L", "L", "L", "L", "L", "N", "N", "L", "L", "L", "N", "N", "N", "ET", "ET", "N", "N", "N", "ET", "ET", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N"], A = new t.__bidiEngine__({ isInputVisual: !0 });
  t.API.events.push(["postProcessText", function(r) {
    var n = r.text;
    r.x, r.y;
    var s = r.options || {};
    r.mutex, s.lang;
    var a = [];
    if (s.isInputVisual = typeof s.isInputVisual != "boolean" || s.isInputVisual, A.setOptions(s), Object.prototype.toString.call(n) === "[object Array]") {
      var o = 0;
      for (a = [], o = 0; o < n.length; o += 1) Object.prototype.toString.call(n[o]) === "[object Array]" ? a.push([A.doBidiReorder(n[o][0]), n[o][1], n[o][2]]) : a.push([A.doBidiReorder(n[o])]);
      r.text = a;
    } else r.text = A.doBidiReorder(n);
    A.setOptions({ isInputVisual: !0 });
  }]);
}(Fe), Fe.API.TTFFont = function() {
  function t(e) {
    var A;
    if (this.rawData = e, A = this.contents = new ns(e), this.contents.pos = 4, A.readString(4) === "ttcf") throw new Error("TTCF not supported.");
    A.pos = 0, this.parse(), this.subset = new Cw(this), this.registerTTF();
  }
  return t.open = function(e) {
    return new t(e);
  }, t.prototype.parse = function() {
    return this.directory = new ow(this.contents), this.head = new cw(this), this.name = new gw(this), this.cmap = new Jd(this), this.toUnicode = {}, this.hhea = new uw(this), this.maxp = new pw(this), this.hmtx = new Bw(this), this.post = new dw(this), this.os2 = new fw(this), this.loca = new yw(this), this.glyf = new ww(this), this.ascender = this.os2.exists && this.os2.ascender || this.hhea.ascender, this.decender = this.os2.exists && this.os2.decender || this.hhea.decender, this.lineGap = this.os2.exists && this.os2.lineGap || this.hhea.lineGap, this.bbox = [this.head.xMin, this.head.yMin, this.head.xMax, this.head.yMax];
  }, t.prototype.registerTTF = function() {
    var e, A, r, n, s;
    if (this.scaleFactor = 1e3 / this.head.unitsPerEm, this.bbox = (function() {
      var a, o, c, d;
      for (d = [], a = 0, o = (c = this.bbox).length; a < o; a++) e = c[a], d.push(Math.round(e * this.scaleFactor));
      return d;
    }).call(this), this.stemV = 0, this.post.exists ? (r = 255 & (n = this.post.italic_angle), (32768 & (A = n >> 16)) != 0 && (A = -(1 + (65535 ^ A))), this.italicAngle = +(A + "." + r)) : this.italicAngle = 0, this.ascender = Math.round(this.ascender * this.scaleFactor), this.decender = Math.round(this.decender * this.scaleFactor), this.lineGap = Math.round(this.lineGap * this.scaleFactor), this.capHeight = this.os2.exists && this.os2.capHeight || this.ascender, this.xHeight = this.os2.exists && this.os2.xHeight || 0, this.familyClass = (this.os2.exists && this.os2.familyClass || 0) >> 8, this.isSerif = (s = this.familyClass) === 1 || s === 2 || s === 3 || s === 4 || s === 5 || s === 7, this.isScript = this.familyClass === 10, this.flags = 0, this.post.isFixedPitch && (this.flags |= 1), this.isSerif && (this.flags |= 2), this.isScript && (this.flags |= 8), this.italicAngle !== 0 && (this.flags |= 64), this.flags |= 32, !this.cmap.unicode) throw new Error("No unicode cmap for font");
  }, t.prototype.characterToGlyph = function(e) {
    var A;
    return ((A = this.cmap.unicode) != null ? A.codeMap[e] : void 0) || 0;
  }, t.prototype.widthOfGlyph = function(e) {
    var A;
    return A = 1e3 / this.head.unitsPerEm, this.hmtx.forGlyph(e).advance * A;
  }, t.prototype.widthOfString = function(e, A, r) {
    var n, s, a, o;
    for (a = 0, s = 0, o = (e = "" + e).length; 0 <= o ? s < o : s > o; s = 0 <= o ? ++s : --s) n = e.charCodeAt(s), a += this.widthOfGlyph(this.characterToGlyph(n)) + r * (1e3 / A) || 0;
    return a * (A / 1e3);
  }, t.prototype.lineHeight = function(e, A) {
    var r;
    return A == null && (A = !1), r = A ? this.lineGap : 0, (this.ascender + r - this.decender) / 1e3 * e;
  }, t;
}();
var en, ns = function() {
  function t(e) {
    this.data = e ?? [], this.pos = 0, this.length = this.data.length;
  }
  return t.prototype.readByte = function() {
    return this.data[this.pos++];
  }, t.prototype.writeByte = function(e) {
    return this.data[this.pos++] = e;
  }, t.prototype.readUInt32 = function() {
    return 16777216 * this.readByte() + (this.readByte() << 16) + (this.readByte() << 8) + this.readByte();
  }, t.prototype.writeUInt32 = function(e) {
    return this.writeByte(e >>> 24 & 255), this.writeByte(e >> 16 & 255), this.writeByte(e >> 8 & 255), this.writeByte(255 & e);
  }, t.prototype.readInt32 = function() {
    var e;
    return (e = this.readUInt32()) >= 2147483648 ? e - 4294967296 : e;
  }, t.prototype.writeInt32 = function(e) {
    return e < 0 && (e += 4294967296), this.writeUInt32(e);
  }, t.prototype.readUInt16 = function() {
    return this.readByte() << 8 | this.readByte();
  }, t.prototype.writeUInt16 = function(e) {
    return this.writeByte(e >> 8 & 255), this.writeByte(255 & e);
  }, t.prototype.readInt16 = function() {
    var e;
    return (e = this.readUInt16()) >= 32768 ? e - 65536 : e;
  }, t.prototype.writeInt16 = function(e) {
    return e < 0 && (e += 65536), this.writeUInt16(e);
  }, t.prototype.readString = function(e) {
    var A, r;
    for (r = [], A = 0; 0 <= e ? A < e : A > e; A = 0 <= e ? ++A : --A) r[A] = String.fromCharCode(this.readByte());
    return r.join("");
  }, t.prototype.writeString = function(e) {
    var A, r, n;
    for (n = [], A = 0, r = e.length; 0 <= r ? A < r : A > r; A = 0 <= r ? ++A : --A) n.push(this.writeByte(e.charCodeAt(A)));
    return n;
  }, t.prototype.readShort = function() {
    return this.readInt16();
  }, t.prototype.writeShort = function(e) {
    return this.writeInt16(e);
  }, t.prototype.readLongLong = function() {
    var e, A, r, n, s, a, o, c;
    return e = this.readByte(), A = this.readByte(), r = this.readByte(), n = this.readByte(), s = this.readByte(), a = this.readByte(), o = this.readByte(), c = this.readByte(), 128 & e ? -1 * (72057594037927940 * (255 ^ e) + 281474976710656 * (255 ^ A) + 1099511627776 * (255 ^ r) + 4294967296 * (255 ^ n) + 16777216 * (255 ^ s) + 65536 * (255 ^ a) + 256 * (255 ^ o) + (255 ^ c) + 1) : 72057594037927940 * e + 281474976710656 * A + 1099511627776 * r + 4294967296 * n + 16777216 * s + 65536 * a + 256 * o + c;
  }, t.prototype.writeLongLong = function(e) {
    var A, r;
    return A = Math.floor(e / 4294967296), r = 4294967295 & e, this.writeByte(A >> 24 & 255), this.writeByte(A >> 16 & 255), this.writeByte(A >> 8 & 255), this.writeByte(255 & A), this.writeByte(r >> 24 & 255), this.writeByte(r >> 16 & 255), this.writeByte(r >> 8 & 255), this.writeByte(255 & r);
  }, t.prototype.readInt = function() {
    return this.readInt32();
  }, t.prototype.writeInt = function(e) {
    return this.writeInt32(e);
  }, t.prototype.read = function(e) {
    var A, r;
    for (A = [], r = 0; 0 <= e ? r < e : r > e; r = 0 <= e ? ++r : --r) A.push(this.readByte());
    return A;
  }, t.prototype.write = function(e) {
    var A, r, n, s;
    for (s = [], r = 0, n = e.length; r < n; r++) A = e[r], s.push(this.writeByte(A));
    return s;
  }, t;
}(), ow = function() {
  var t;
  function e(A) {
    var r, n, s;
    for (this.scalarType = A.readInt(), this.tableCount = A.readShort(), this.searchRange = A.readShort(), this.entrySelector = A.readShort(), this.rangeShift = A.readShort(), this.tables = {}, n = 0, s = this.tableCount; 0 <= s ? n < s : n > s; n = 0 <= s ? ++n : --n) r = { tag: A.readString(4), checksum: A.readInt(), offset: A.readInt(), length: A.readInt() }, this.tables[r.tag] = r;
  }
  return e.prototype.encode = function(A) {
    var r, n, s, a, o, c, d, h, g, w, p, m, F;
    for (F in p = Object.keys(A).length, c = Math.log(2), g = 16 * Math.floor(Math.log(p) / c), a = Math.floor(g / c), h = 16 * p - g, (n = new ns()).writeInt(this.scalarType), n.writeShort(p), n.writeShort(g), n.writeShort(a), n.writeShort(h), s = 16 * p, d = n.pos + s, o = null, m = [], A) for (w = A[F], n.writeString(F), n.writeInt(t(w)), n.writeInt(d), n.writeInt(w.length), m = m.concat(w), F === "head" && (o = d), d += w.length; d % 4; ) m.push(0), d++;
    return n.write(m), r = 2981146554 - t(n.data), n.pos = o + 8, n.writeUInt32(r), n.data;
  }, t = function(A) {
    var r, n, s, a;
    for (A = $d.call(A); A.length % 4; ) A.push(0);
    for (s = new ns(A), n = 0, r = 0, a = A.length; r < a; r = r += 4) n += s.readUInt32();
    return 4294967295 & n;
  }, e;
}(), lw = {}.hasOwnProperty, fn = function(t, e) {
  for (var A in e) lw.call(e, A) && (t[A] = e[A]);
  function r() {
    this.constructor = t;
  }
  return r.prototype = e.prototype, t.prototype = new r(), t.__super__ = e.prototype, t;
};
en = function() {
  function t(e) {
    var A;
    this.file = e, A = this.file.directory.tables[this.tag], this.exists = !!A, A && (this.offset = A.offset, this.length = A.length, this.parse(this.file.contents));
  }
  return t.prototype.parse = function() {
  }, t.prototype.encode = function() {
  }, t.prototype.raw = function() {
    return this.exists ? (this.file.contents.pos = this.offset, this.file.contents.read(this.length)) : null;
  }, t;
}();
var cw = function(t) {
  function e() {
    return e.__super__.constructor.apply(this, arguments);
  }
  return fn(e, en), e.prototype.tag = "head", e.prototype.parse = function(A) {
    return A.pos = this.offset, this.version = A.readInt(), this.revision = A.readInt(), this.checkSumAdjustment = A.readInt(), this.magicNumber = A.readInt(), this.flags = A.readShort(), this.unitsPerEm = A.readShort(), this.created = A.readLongLong(), this.modified = A.readLongLong(), this.xMin = A.readShort(), this.yMin = A.readShort(), this.xMax = A.readShort(), this.yMax = A.readShort(), this.macStyle = A.readShort(), this.lowestRecPPEM = A.readShort(), this.fontDirectionHint = A.readShort(), this.indexToLocFormat = A.readShort(), this.glyphDataFormat = A.readShort();
  }, e.prototype.encode = function(A) {
    var r;
    return (r = new ns()).writeInt(this.version), r.writeInt(this.revision), r.writeInt(this.checkSumAdjustment), r.writeInt(this.magicNumber), r.writeShort(this.flags), r.writeShort(this.unitsPerEm), r.writeLongLong(this.created), r.writeLongLong(this.modified), r.writeShort(this.xMin), r.writeShort(this.yMin), r.writeShort(this.xMax), r.writeShort(this.yMax), r.writeShort(this.macStyle), r.writeShort(this.lowestRecPPEM), r.writeShort(this.fontDirectionHint), r.writeShort(A), r.writeShort(this.glyphDataFormat), r.data;
  }, e;
}(), Ef = function() {
  function t(e, A) {
    var r, n, s, a, o, c, d, h, g, w, p, m, F, D, v, E, P;
    switch (this.platformID = e.readUInt16(), this.encodingID = e.readShort(), this.offset = A + e.readInt(), g = e.pos, e.pos = this.offset, this.format = e.readUInt16(), this.length = e.readUInt16(), this.language = e.readUInt16(), this.isUnicode = this.platformID === 3 && this.encodingID === 1 && this.format === 4 || this.platformID === 0 && this.format === 4, this.codeMap = {}, this.format) {
      case 0:
        for (c = 0; c < 256; ++c) this.codeMap[c] = e.readByte();
        break;
      case 4:
        for (p = e.readUInt16(), w = p / 2, e.pos += 6, s = function() {
          var V, J;
          for (J = [], c = V = 0; 0 <= w ? V < w : V > w; c = 0 <= w ? ++V : --V) J.push(e.readUInt16());
          return J;
        }(), e.pos += 2, F = function() {
          var V, J;
          for (J = [], c = V = 0; 0 <= w ? V < w : V > w; c = 0 <= w ? ++V : --V) J.push(e.readUInt16());
          return J;
        }(), d = function() {
          var V, J;
          for (J = [], c = V = 0; 0 <= w ? V < w : V > w; c = 0 <= w ? ++V : --V) J.push(e.readUInt16());
          return J;
        }(), h = function() {
          var V, J;
          for (J = [], c = V = 0; 0 <= w ? V < w : V > w; c = 0 <= w ? ++V : --V) J.push(e.readUInt16());
          return J;
        }(), n = (this.length - e.pos + this.offset) / 2, o = function() {
          var V, J;
          for (J = [], c = V = 0; 0 <= n ? V < n : V > n; c = 0 <= n ? ++V : --V) J.push(e.readUInt16());
          return J;
        }(), c = v = 0, P = s.length; v < P; c = ++v) for (D = s[c], r = E = m = F[c]; m <= D ? E <= D : E >= D; r = m <= D ? ++E : --E) h[c] === 0 ? a = r + d[c] : (a = o[h[c] / 2 + (r - m) - (w - c)] || 0) !== 0 && (a += d[c]), this.codeMap[r] = 65535 & a;
    }
    e.pos = g;
  }
  return t.encode = function(e, A) {
    var r, n, s, a, o, c, d, h, g, w, p, m, F, D, v, E, P, V, J, Y, W, O, q, lA, I, Q, k, U, R, X, AA, z, aA, rA, QA, b, T, _, j, $, uA, hA, mA, jA, VA, YA;
    switch (U = new ns(), a = Object.keys(e).sort(function(nA, UA) {
      return nA - UA;
    }), A) {
      case "macroman":
        for (F = 0, D = function() {
          var nA = [];
          for (m = 0; m < 256; ++m) nA.push(0);
          return nA;
        }(), E = { 0: 0 }, s = {}, R = 0, aA = a.length; R < aA; R++) E[mA = e[n = a[R]]] == null && (E[mA] = ++F), s[n] = { old: e[n], new: E[e[n]] }, D[n] = E[e[n]];
        return U.writeUInt16(1), U.writeUInt16(0), U.writeUInt32(12), U.writeUInt16(0), U.writeUInt16(262), U.writeUInt16(0), U.write(D), { charMap: s, subtable: U.data, maxGlyphID: F + 1 };
      case "unicode":
        for (Q = [], g = [], P = 0, E = {}, r = {}, v = d = null, X = 0, rA = a.length; X < rA; X++) E[J = e[n = a[X]]] == null && (E[J] = ++P), r[n] = { old: J, new: E[J] }, o = E[J] - n, v != null && o === d || (v && g.push(v), Q.push(n), d = o), v = n;
        for (v && g.push(v), g.push(65535), Q.push(65535), lA = 2 * (q = Q.length), O = 2 * Math.pow(Math.log(q) / Math.LN2, 2), w = Math.log(O / 2) / Math.LN2, W = 2 * q - O, c = [], Y = [], p = [], m = AA = 0, QA = Q.length; AA < QA; m = ++AA) {
          if (I = Q[m], h = g[m], I === 65535) {
            c.push(0), Y.push(0);
            break;
          }
          if (I - (k = r[I].new) >= 32768) for (c.push(0), Y.push(2 * (p.length + q - m)), n = z = I; I <= h ? z <= h : z >= h; n = I <= h ? ++z : --z) p.push(r[n].new);
          else c.push(k - I), Y.push(0);
        }
        for (U.writeUInt16(3), U.writeUInt16(1), U.writeUInt32(12), U.writeUInt16(4), U.writeUInt16(16 + 8 * q + 2 * p.length), U.writeUInt16(0), U.writeUInt16(lA), U.writeUInt16(O), U.writeUInt16(w), U.writeUInt16(W), uA = 0, b = g.length; uA < b; uA++) n = g[uA], U.writeUInt16(n);
        for (U.writeUInt16(0), hA = 0, T = Q.length; hA < T; hA++) n = Q[hA], U.writeUInt16(n);
        for (jA = 0, _ = c.length; jA < _; jA++) o = c[jA], U.writeUInt16(o);
        for (VA = 0, j = Y.length; VA < j; VA++) V = Y[VA], U.writeUInt16(V);
        for (YA = 0, $ = p.length; YA < $; YA++) F = p[YA], U.writeUInt16(F);
        return { charMap: r, subtable: U.data, maxGlyphID: P + 1 };
    }
  }, t;
}(), Jd = function(t) {
  function e() {
    return e.__super__.constructor.apply(this, arguments);
  }
  return fn(e, en), e.prototype.tag = "cmap", e.prototype.parse = function(A) {
    var r, n, s;
    for (A.pos = this.offset, this.version = A.readUInt16(), s = A.readUInt16(), this.tables = [], this.unicode = null, n = 0; 0 <= s ? n < s : n > s; n = 0 <= s ? ++n : --n) r = new Ef(A, this.offset), this.tables.push(r), r.isUnicode && this.unicode == null && (this.unicode = r);
    return !0;
  }, e.encode = function(A, r) {
    var n, s;
    return r == null && (r = "macroman"), n = Ef.encode(A, r), (s = new ns()).writeUInt16(0), s.writeUInt16(1), n.table = s.data.concat(n.subtable), n;
  }, e;
}(), uw = function(t) {
  function e() {
    return e.__super__.constructor.apply(this, arguments);
  }
  return fn(e, en), e.prototype.tag = "hhea", e.prototype.parse = function(A) {
    return A.pos = this.offset, this.version = A.readInt(), this.ascender = A.readShort(), this.decender = A.readShort(), this.lineGap = A.readShort(), this.advanceWidthMax = A.readShort(), this.minLeftSideBearing = A.readShort(), this.minRightSideBearing = A.readShort(), this.xMaxExtent = A.readShort(), this.caretSlopeRise = A.readShort(), this.caretSlopeRun = A.readShort(), this.caretOffset = A.readShort(), A.pos += 8, this.metricDataFormat = A.readShort(), this.numberOfMetrics = A.readUInt16();
  }, e;
}(), fw = function(t) {
  function e() {
    return e.__super__.constructor.apply(this, arguments);
  }
  return fn(e, en), e.prototype.tag = "OS/2", e.prototype.parse = function(A) {
    if (A.pos = this.offset, this.version = A.readUInt16(), this.averageCharWidth = A.readShort(), this.weightClass = A.readUInt16(), this.widthClass = A.readUInt16(), this.type = A.readShort(), this.ySubscriptXSize = A.readShort(), this.ySubscriptYSize = A.readShort(), this.ySubscriptXOffset = A.readShort(), this.ySubscriptYOffset = A.readShort(), this.ySuperscriptXSize = A.readShort(), this.ySuperscriptYSize = A.readShort(), this.ySuperscriptXOffset = A.readShort(), this.ySuperscriptYOffset = A.readShort(), this.yStrikeoutSize = A.readShort(), this.yStrikeoutPosition = A.readShort(), this.familyClass = A.readShort(), this.panose = function() {
      var r, n;
      for (n = [], r = 0; r < 10; ++r) n.push(A.readByte());
      return n;
    }(), this.charRange = function() {
      var r, n;
      for (n = [], r = 0; r < 4; ++r) n.push(A.readInt());
      return n;
    }(), this.vendorID = A.readString(4), this.selection = A.readShort(), this.firstCharIndex = A.readShort(), this.lastCharIndex = A.readShort(), this.version > 0 && (this.ascent = A.readShort(), this.descent = A.readShort(), this.lineGap = A.readShort(), this.winAscent = A.readShort(), this.winDescent = A.readShort(), this.codePageRange = function() {
      var r, n;
      for (n = [], r = 0; r < 2; r = ++r) n.push(A.readInt());
      return n;
    }(), this.version > 1)) return this.xHeight = A.readShort(), this.capHeight = A.readShort(), this.defaultChar = A.readShort(), this.breakChar = A.readShort(), this.maxContext = A.readShort();
  }, e;
}(), dw = function(t) {
  function e() {
    return e.__super__.constructor.apply(this, arguments);
  }
  return fn(e, en), e.prototype.tag = "post", e.prototype.parse = function(A) {
    var r, n, s;
    switch (A.pos = this.offset, this.format = A.readInt(), this.italicAngle = A.readInt(), this.underlinePosition = A.readShort(), this.underlineThickness = A.readShort(), this.isFixedPitch = A.readInt(), this.minMemType42 = A.readInt(), this.maxMemType42 = A.readInt(), this.minMemType1 = A.readInt(), this.maxMemType1 = A.readInt(), this.format) {
      case 65536:
        break;
      case 131072:
        var a;
        for (n = A.readUInt16(), this.glyphNameIndex = [], a = 0; 0 <= n ? a < n : a > n; a = 0 <= n ? ++a : --a) this.glyphNameIndex.push(A.readUInt16());
        for (this.names = [], s = []; A.pos < this.offset + this.length; ) r = A.readByte(), s.push(this.names.push(A.readString(r)));
        return s;
      case 151552:
        return n = A.readUInt16(), this.offsets = A.read(n);
      case 196608:
        break;
      case 262144:
        return this.map = (function() {
          var o, c, d;
          for (d = [], a = o = 0, c = this.file.maxp.numGlyphs; 0 <= c ? o < c : o > c; a = 0 <= c ? ++o : --o) d.push(A.readUInt32());
          return d;
        }).call(this);
    }
  }, e;
}(), hw = function(t, e) {
  this.raw = t, this.length = t.length, this.platformID = e.platformID, this.encodingID = e.encodingID, this.languageID = e.languageID;
}, gw = function(t) {
  function e() {
    return e.__super__.constructor.apply(this, arguments);
  }
  return fn(e, en), e.prototype.tag = "name", e.prototype.parse = function(A) {
    var r, n, s, a, o, c, d, h, g, w, p;
    for (A.pos = this.offset, A.readShort(), r = A.readShort(), c = A.readShort(), n = [], a = 0; 0 <= r ? a < r : a > r; a = 0 <= r ? ++a : --a) n.push({ platformID: A.readShort(), encodingID: A.readShort(), languageID: A.readShort(), nameID: A.readShort(), length: A.readShort(), offset: this.offset + c + A.readShort() });
    for (d = {}, a = g = 0, w = n.length; g < w; a = ++g) s = n[a], A.pos = s.offset, h = A.readString(s.length), o = new hw(h, s), d[p = s.nameID] == null && (d[p] = []), d[s.nameID].push(o);
    this.strings = d, this.copyright = d[0], this.fontFamily = d[1], this.fontSubfamily = d[2], this.uniqueSubfamily = d[3], this.fontName = d[4], this.version = d[5];
    try {
      this.postscriptName = d[6][0].raw.replace(/[\x00-\x19\x80-\xff]/g, "");
    } catch {
      this.postscriptName = d[4][0].raw.replace(/[\x00-\x19\x80-\xff]/g, "");
    }
    return this.trademark = d[7], this.manufacturer = d[8], this.designer = d[9], this.description = d[10], this.vendorUrl = d[11], this.designerUrl = d[12], this.license = d[13], this.licenseUrl = d[14], this.preferredFamily = d[15], this.preferredSubfamily = d[17], this.compatibleFull = d[18], this.sampleText = d[19];
  }, e;
}(), pw = function(t) {
  function e() {
    return e.__super__.constructor.apply(this, arguments);
  }
  return fn(e, en), e.prototype.tag = "maxp", e.prototype.parse = function(A) {
    return A.pos = this.offset, this.version = A.readInt(), this.numGlyphs = A.readUInt16(), this.maxPoints = A.readUInt16(), this.maxContours = A.readUInt16(), this.maxCompositePoints = A.readUInt16(), this.maxComponentContours = A.readUInt16(), this.maxZones = A.readUInt16(), this.maxTwilightPoints = A.readUInt16(), this.maxStorage = A.readUInt16(), this.maxFunctionDefs = A.readUInt16(), this.maxInstructionDefs = A.readUInt16(), this.maxStackElements = A.readUInt16(), this.maxSizeOfInstructions = A.readUInt16(), this.maxComponentElements = A.readUInt16(), this.maxComponentDepth = A.readUInt16();
  }, e;
}(), Bw = function(t) {
  function e() {
    return e.__super__.constructor.apply(this, arguments);
  }
  return fn(e, en), e.prototype.tag = "hmtx", e.prototype.parse = function(A) {
    var r, n, s, a, o, c, d;
    for (A.pos = this.offset, this.metrics = [], r = 0, c = this.file.hhea.numberOfMetrics; 0 <= c ? r < c : r > c; r = 0 <= c ? ++r : --r) this.metrics.push({ advance: A.readUInt16(), lsb: A.readInt16() });
    for (s = this.file.maxp.numGlyphs - this.file.hhea.numberOfMetrics, this.leftSideBearings = function() {
      var h, g;
      for (g = [], r = h = 0; 0 <= s ? h < s : h > s; r = 0 <= s ? ++h : --h) g.push(A.readInt16());
      return g;
    }(), this.widths = (function() {
      var h, g, w, p;
      for (p = [], h = 0, g = (w = this.metrics).length; h < g; h++) a = w[h], p.push(a.advance);
      return p;
    }).call(this), n = this.widths[this.widths.length - 1], d = [], r = o = 0; 0 <= s ? o < s : o > s; r = 0 <= s ? ++o : --o) d.push(this.widths.push(n));
    return d;
  }, e.prototype.forGlyph = function(A) {
    return A in this.metrics ? this.metrics[A] : { advance: this.metrics[this.metrics.length - 1].advance, lsb: this.leftSideBearings[A - this.metrics.length] };
  }, e;
}(), $d = [].slice, ww = function(t) {
  function e() {
    return e.__super__.constructor.apply(this, arguments);
  }
  return fn(e, en), e.prototype.tag = "glyf", e.prototype.parse = function() {
    return this.cache = {};
  }, e.prototype.glyphFor = function(A) {
    var r, n, s, a, o, c, d, h, g, w;
    return A in this.cache ? this.cache[A] : (a = this.file.loca, r = this.file.contents, n = a.indexOf(A), (s = a.lengthOf(A)) === 0 ? this.cache[A] = null : (r.pos = this.offset + n, o = (c = new ns(r.read(s))).readShort(), h = c.readShort(), w = c.readShort(), d = c.readShort(), g = c.readShort(), this.cache[A] = o === -1 ? new mw(c, h, w, d, g) : new vw(c, o, h, w, d, g), this.cache[A]));
  }, e.prototype.encode = function(A, r, n) {
    var s, a, o, c, d;
    for (o = [], a = [], c = 0, d = r.length; c < d; c++) s = A[r[c]], a.push(o.length), s && (o = o.concat(s.encode(n)));
    return a.push(o.length), { table: o, offsets: a };
  }, e;
}(), vw = function() {
  function t(e, A, r, n, s, a) {
    this.raw = e, this.numberOfContours = A, this.xMin = r, this.yMin = n, this.xMax = s, this.yMax = a, this.compound = !1;
  }
  return t.prototype.encode = function() {
    return this.raw.data;
  }, t;
}(), mw = function() {
  function t(e, A, r, n, s) {
    var a, o;
    for (this.raw = e, this.xMin = A, this.yMin = r, this.xMax = n, this.yMax = s, this.compound = !0, this.glyphIDs = [], this.glyphOffsets = [], a = this.raw; o = a.readShort(), this.glyphOffsets.push(a.pos), this.glyphIDs.push(a.readUInt16()), 32 & o; ) a.pos += 1 & o ? 4 : 2, 128 & o ? a.pos += 8 : 64 & o ? a.pos += 4 : 8 & o && (a.pos += 2);
  }
  return t.prototype.encode = function() {
    var e, A, r;
    for (A = new ns($d.call(this.raw.data)), e = 0, r = this.glyphIDs.length; e < r; ++e) A.pos = this.glyphOffsets[e];
    return A.data;
  }, t;
}(), yw = function(t) {
  function e() {
    return e.__super__.constructor.apply(this, arguments);
  }
  return fn(e, en), e.prototype.tag = "loca", e.prototype.parse = function(A) {
    var r, n;
    return A.pos = this.offset, r = this.file.head.indexToLocFormat, this.offsets = r === 0 ? (function() {
      var s, a;
      for (a = [], n = 0, s = this.length; n < s; n += 2) a.push(2 * A.readUInt16());
      return a;
    }).call(this) : (function() {
      var s, a;
      for (a = [], n = 0, s = this.length; n < s; n += 4) a.push(A.readUInt32());
      return a;
    }).call(this);
  }, e.prototype.indexOf = function(A) {
    return this.offsets[A];
  }, e.prototype.lengthOf = function(A) {
    return this.offsets[A + 1] - this.offsets[A];
  }, e.prototype.encode = function(A, r) {
    for (var n = new Uint32Array(this.offsets.length), s = 0, a = 0, o = 0; o < n.length; ++o) if (n[o] = s, a < r.length && r[a] == o) {
      ++a, n[o] = s;
      var c = this.offsets[o], d = this.offsets[o + 1] - c;
      d > 0 && (s += d);
    }
    for (var h = new Array(4 * n.length), g = 0; g < n.length; ++g) h[4 * g + 3] = 255 & n[g], h[4 * g + 2] = (65280 & n[g]) >> 8, h[4 * g + 1] = (16711680 & n[g]) >> 16, h[4 * g] = (4278190080 & n[g]) >> 24;
    return h;
  }, e;
}(), Cw = function() {
  function t(e) {
    this.font = e, this.subset = {}, this.unicodes = {}, this.next = 33;
  }
  return t.prototype.generateCmap = function() {
    var e, A, r, n, s;
    for (A in n = this.font.cmap.tables[0].codeMap, e = {}, s = this.subset) r = s[A], e[A] = n[r];
    return e;
  }, t.prototype.glyphsFor = function(e) {
    var A, r, n, s, a, o, c;
    for (n = {}, a = 0, o = e.length; a < o; a++) n[s = e[a]] = this.font.glyf.glyphFor(s);
    for (s in A = [], n) (r = n[s]) != null && r.compound && A.push.apply(A, r.glyphIDs);
    if (A.length > 0) for (s in c = this.glyphsFor(A)) r = c[s], n[s] = r;
    return n;
  }, t.prototype.encode = function(e, A) {
    var r, n, s, a, o, c, d, h, g, w, p, m, F, D, v;
    for (n in r = Jd.encode(this.generateCmap(), "unicode"), a = this.glyphsFor(e), p = { 0: 0 }, v = r.charMap) p[(c = v[n]).old] = c.new;
    for (m in w = r.maxGlyphID, a) m in p || (p[m] = w++);
    return h = function(E) {
      var P, V;
      for (P in V = {}, E) V[E[P]] = P;
      return V;
    }(p), g = Object.keys(h).sort(function(E, P) {
      return E - P;
    }), F = function() {
      var E, P, V;
      for (V = [], E = 0, P = g.length; E < P; E++) o = g[E], V.push(h[o]);
      return V;
    }(), s = this.font.glyf.encode(a, F, p), d = this.font.loca.encode(s.offsets, F), D = { cmap: this.font.cmap.raw(), glyf: s.table, loca: d, hmtx: this.font.hmtx.raw(), hhea: this.font.hhea.raw(), maxp: this.font.maxp.raw(), post: this.font.post.raw(), name: this.font.name.raw(), head: this.font.head.encode(A) }, this.font.os2.exists && (D["OS/2"] = this.font.os2.raw()), this.font.directory.encode(D);
  }, t;
}();
Fe.API.PDFObject = function() {
  var t;
  function e() {
  }
  return t = function(A, r) {
    return (Array(r + 1).join("0") + A).slice(-r);
  }, e.convert = function(A) {
    var r, n, s, a;
    if (Array.isArray(A)) return "[" + function() {
      var o, c, d;
      for (d = [], o = 0, c = A.length; o < c; o++) r = A[o], d.push(e.convert(r));
      return d;
    }().join(" ") + "]";
    if (typeof A == "string") return "/" + A;
    if (A != null && A.isString) return "(" + A + ")";
    if (A instanceof Date) return "(D:" + t(A.getUTCFullYear(), 4) + t(A.getUTCMonth(), 2) + t(A.getUTCDate(), 2) + t(A.getUTCHours(), 2) + t(A.getUTCMinutes(), 2) + t(A.getUTCSeconds(), 2) + "Z)";
    if ({}.toString.call(A) === "[object Object]") {
      for (n in s = ["<<"], A) a = A[n], s.push("/" + n + " " + e.convert(a));
      return s.push(">>"), s.join(`
`);
    }
    return "" + A;
  }, e;
}();
/*!
 * html2canvas 1.4.1 <https://html2canvas.hertzen.com>
 * Copyright (c) 2022 Niklas von Hertzen <https://hertzen.com>
 * Released under MIT License
 */
/*! *****************************************************************************
Copyright (c) Microsoft Corporation.

Permission to use, copy, modify, and/or distribute this software for any
purpose with or without fee is hereby granted.

THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
PERFORMANCE OF THIS SOFTWARE.
***************************************************************************** */
var Yc = function(t, e) {
  return Yc = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function(A, r) {
    A.__proto__ = r;
  } || function(A, r) {
    for (var n in r) Object.prototype.hasOwnProperty.call(r, n) && (A[n] = r[n]);
  }, Yc(t, e);
};
function tn(t, e) {
  if (typeof e != "function" && e !== null)
    throw new TypeError("Class extends value " + String(e) + " is not a constructor or null");
  Yc(t, e);
  function A() {
    this.constructor = t;
  }
  t.prototype = e === null ? Object.create(e) : (A.prototype = e.prototype, new A());
}
var Jc = function() {
  return Jc = Object.assign || function(e) {
    for (var A, r = 1, n = arguments.length; r < n; r++) {
      A = arguments[r];
      for (var s in A) Object.prototype.hasOwnProperty.call(A, s) && (e[s] = A[s]);
    }
    return e;
  }, Jc.apply(this, arguments);
};
function or(t, e, A, r) {
  function n(s) {
    return s instanceof A ? s : new A(function(a) {
      a(s);
    });
  }
  return new (A || (A = Promise))(function(s, a) {
    function o(h) {
      try {
        d(r.next(h));
      } catch (g) {
        a(g);
      }
    }
    function c(h) {
      try {
        d(r.throw(h));
      } catch (g) {
        a(g);
      }
    }
    function d(h) {
      h.done ? s(h.value) : n(h.value).then(o, c);
    }
    d((r = r.apply(t, [])).next());
  });
}
function er(t, e) {
  var A = { label: 0, sent: function() {
    if (s[0] & 1) throw s[1];
    return s[1];
  }, trys: [], ops: [] }, r, n, s, a;
  return a = { next: o(0), throw: o(1), return: o(2) }, typeof Symbol == "function" && (a[Symbol.iterator] = function() {
    return this;
  }), a;
  function o(d) {
    return function(h) {
      return c([d, h]);
    };
  }
  function c(d) {
    if (r) throw new TypeError("Generator is already executing.");
    for (; A; ) try {
      if (r = 1, n && (s = d[0] & 2 ? n.return : d[0] ? n.throw || ((s = n.return) && s.call(n), 0) : n.next) && !(s = s.call(n, d[1])).done) return s;
      switch (n = 0, s && (d = [d[0] & 2, s.value]), d[0]) {
        case 0:
        case 1:
          s = d;
          break;
        case 4:
          return A.label++, { value: d[1], done: !1 };
        case 5:
          A.label++, n = d[1], d = [0];
          continue;
        case 7:
          d = A.ops.pop(), A.trys.pop();
          continue;
        default:
          if (s = A.trys, !(s = s.length > 0 && s[s.length - 1]) && (d[0] === 6 || d[0] === 2)) {
            A = 0;
            continue;
          }
          if (d[0] === 3 && (!s || d[1] > s[0] && d[1] < s[3])) {
            A.label = d[1];
            break;
          }
          if (d[0] === 6 && A.label < s[1]) {
            A.label = s[1], s = d;
            break;
          }
          if (s && A.label < s[2]) {
            A.label = s[2], A.ops.push(d);
            break;
          }
          s[2] && A.ops.pop(), A.trys.pop();
          continue;
      }
      d = e.call(t, A);
    } catch (h) {
      d = [6, h], n = 0;
    } finally {
      r = s = 0;
    }
    if (d[0] & 5) throw d[1];
    return { value: d[0] ? d[1] : void 0, done: !0 };
  }
}
function ho(t, e, A) {
  if (arguments.length === 2) for (var r = 0, n = e.length, s; r < n; r++)
    (s || !(r in e)) && (s || (s = Array.prototype.slice.call(e, 0, r)), s[r] = e[r]);
  return t.concat(s || e);
}
var xn = (
  /** @class */
  function() {
    function t(e, A, r, n) {
      this.left = e, this.top = A, this.width = r, this.height = n;
    }
    return t.prototype.add = function(e, A, r, n) {
      return new t(this.left + e, this.top + A, this.width + r, this.height + n);
    }, t.fromClientRect = function(e, A) {
      return new t(A.left + e.windowBounds.left, A.top + e.windowBounds.top, A.width, A.height);
    }, t.fromDOMRectList = function(e, A) {
      var r = Array.from(A).find(function(n) {
        return n.width !== 0;
      });
      return r ? new t(r.left + e.windowBounds.left, r.top + e.windowBounds.top, r.width, r.height) : t.EMPTY;
    }, t.EMPTY = new t(0, 0, 0, 0), t;
  }()
), cl = function(t, e) {
  return xn.fromClientRect(t, e.getBoundingClientRect());
}, bw = function(t) {
  var e = t.body, A = t.documentElement;
  if (!e || !A)
    throw new Error("Unable to get document size");
  var r = Math.max(Math.max(e.scrollWidth, A.scrollWidth), Math.max(e.offsetWidth, A.offsetWidth), Math.max(e.clientWidth, A.clientWidth)), n = Math.max(Math.max(e.scrollHeight, A.scrollHeight), Math.max(e.offsetHeight, A.offsetHeight), Math.max(e.clientHeight, A.clientHeight));
  return new xn(0, 0, r, n);
}, ul = function(t) {
  for (var e = [], A = 0, r = t.length; A < r; ) {
    var n = t.charCodeAt(A++);
    if (n >= 55296 && n <= 56319 && A < r) {
      var s = t.charCodeAt(A++);
      (s & 64512) === 56320 ? e.push(((n & 1023) << 10) + (s & 1023) + 65536) : (e.push(n), A--);
    } else
      e.push(n);
  }
  return e;
}, Qt = function() {
  for (var t = [], e = 0; e < arguments.length; e++)
    t[e] = arguments[e];
  if (String.fromCodePoint)
    return String.fromCodePoint.apply(String, t);
  var A = t.length;
  if (!A)
    return "";
  for (var r = [], n = -1, s = ""; ++n < A; ) {
    var a = t[n];
    a <= 65535 ? r.push(a) : (a -= 65536, r.push((a >> 10) + 55296, a % 1024 + 56320)), (n + 1 === A || r.length > 16384) && (s += String.fromCharCode.apply(String, r), r.length = 0);
  }
  return s;
}, xf = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/", Fw = typeof Uint8Array > "u" ? [] : new Uint8Array(256);
for (var go = 0; go < xf.length; go++)
  Fw[xf.charCodeAt(go)] = go;
var If = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/", ea = typeof Uint8Array > "u" ? [] : new Uint8Array(256);
for (var po = 0; po < If.length; po++)
  ea[If.charCodeAt(po)] = po;
var Qw = function(t) {
  var e = t.length * 0.75, A = t.length, r, n = 0, s, a, o, c;
  t[t.length - 1] === "=" && (e--, t[t.length - 2] === "=" && e--);
  var d = typeof ArrayBuffer < "u" && typeof Uint8Array < "u" && typeof Uint8Array.prototype.slice < "u" ? new ArrayBuffer(e) : new Array(e), h = Array.isArray(d) ? d : new Uint8Array(d);
  for (r = 0; r < A; r += 4)
    s = ea[t.charCodeAt(r)], a = ea[t.charCodeAt(r + 1)], o = ea[t.charCodeAt(r + 2)], c = ea[t.charCodeAt(r + 3)], h[n++] = s << 2 | a >> 4, h[n++] = (a & 15) << 4 | o >> 2, h[n++] = (o & 3) << 6 | c & 63;
  return d;
}, Uw = function(t) {
  for (var e = t.length, A = [], r = 0; r < e; r += 2)
    A.push(t[r + 1] << 8 | t[r]);
  return A;
}, Lw = function(t) {
  for (var e = t.length, A = [], r = 0; r < e; r += 4)
    A.push(t[r + 3] << 24 | t[r + 2] << 16 | t[r + 1] << 8 | t[r]);
  return A;
}, Fs = 5, bu = 11, gc = 2, Ew = bu - Fs, Zd = 65536 >> Fs, xw = 1 << Fs, pc = xw - 1, Iw = 1024 >> Fs, Sw = Zd + Iw, Dw = Sw, kw = 32, Hw = Dw + kw, Tw = 65536 >> bu, Nw = 1 << Ew, _w = Nw - 1, Sf = function(t, e, A) {
  return t.slice ? t.slice(e, A) : new Uint16Array(Array.prototype.slice.call(t, e, A));
}, Mw = function(t, e, A) {
  return t.slice ? t.slice(e, A) : new Uint32Array(Array.prototype.slice.call(t, e, A));
}, Pw = function(t, e) {
  var A = Qw(t), r = Array.isArray(A) ? Lw(A) : new Uint32Array(A), n = Array.isArray(A) ? Uw(A) : new Uint16Array(A), s = 24, a = Sf(n, s / 2, r[4] / 2), o = r[5] === 2 ? Sf(n, (s + r[4]) / 2) : Mw(r, Math.ceil((s + r[4]) / 4));
  return new Ow(r[0], r[1], r[2], r[3], a, o);
}, Ow = (
  /** @class */
  function() {
    function t(e, A, r, n, s, a) {
      this.initialValue = e, this.errorValue = A, this.highStart = r, this.highValueIndex = n, this.index = s, this.data = a;
    }
    return t.prototype.get = function(e) {
      var A;
      if (e >= 0) {
        if (e < 55296 || e > 56319 && e <= 65535)
          return A = this.index[e >> Fs], A = (A << gc) + (e & pc), this.data[A];
        if (e <= 65535)
          return A = this.index[Zd + (e - 55296 >> Fs)], A = (A << gc) + (e & pc), this.data[A];
        if (e < this.highStart)
          return A = Hw - Tw + (e >> bu), A = this.index[A], A += e >> Fs & _w, A = this.index[A], A = (A << gc) + (e & pc), this.data[A];
        if (e <= 1114111)
          return this.data[this.highValueIndex];
      }
      return this.errorValue;
    }, t;
  }()
), Df = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/", Rw = typeof Uint8Array > "u" ? [] : new Uint8Array(256);
for (var Bo = 0; Bo < Df.length; Bo++)
  Rw[Df.charCodeAt(Bo)] = Bo;
var Kw = "KwAAAAAAAAAACA4AUD0AADAgAAACAAAAAAAIABAAGABAAEgAUABYAGAAaABgAGgAYgBqAF8AZwBgAGgAcQB5AHUAfQCFAI0AlQCdAKIAqgCyALoAYABoAGAAaABgAGgAwgDKAGAAaADGAM4A0wDbAOEA6QDxAPkAAQEJAQ8BFwF1AH0AHAEkASwBNAE6AUIBQQFJAVEBWQFhAWgBcAF4ATAAgAGGAY4BlQGXAZ8BpwGvAbUBvQHFAc0B0wHbAeMB6wHxAfkBAQIJAvEBEQIZAiECKQIxAjgCQAJGAk4CVgJeAmQCbAJ0AnwCgQKJApECmQKgAqgCsAK4ArwCxAIwAMwC0wLbAjAA4wLrAvMC+AIAAwcDDwMwABcDHQMlAy0DNQN1AD0DQQNJA0kDSQNRA1EDVwNZA1kDdQB1AGEDdQBpA20DdQN1AHsDdQCBA4kDkQN1AHUAmQOhA3UAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AKYDrgN1AHUAtgO+A8YDzgPWAxcD3gPjA+sD8wN1AHUA+wMDBAkEdQANBBUEHQQlBCoEFwMyBDgEYABABBcDSARQBFgEYARoBDAAcAQzAXgEgASIBJAEdQCXBHUAnwSnBK4EtgS6BMIEyAR1AHUAdQB1AHUAdQCVANAEYABgAGAAYABgAGAAYABgANgEYADcBOQEYADsBPQE/AQEBQwFFAUcBSQFLAU0BWQEPAVEBUsFUwVbBWAAYgVgAGoFcgV6BYIFigWRBWAAmQWfBaYFYABgAGAAYABgAKoFYACxBbAFuQW6BcEFwQXHBcEFwQXPBdMF2wXjBeoF8gX6BQIGCgYSBhoGIgYqBjIGOgZgAD4GRgZMBmAAUwZaBmAAYABgAGAAYABgAGAAYABgAGAAYABgAGIGYABpBnAGYABgAGAAYABgAGAAYABgAGAAYAB4Bn8GhQZgAGAAYAB1AHcDFQSLBmAAYABgAJMGdQA9A3UAmwajBqsGqwaVALMGuwbDBjAAywbSBtIG1QbSBtIG0gbSBtIG0gbdBuMG6wbzBvsGAwcLBxMHAwcbByMHJwcsBywHMQcsB9IGOAdAB0gHTgfSBkgHVgfSBtIG0gbSBtIG0gbSBtIG0gbSBiwHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAdgAGAALAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAdbB2MHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsB2kH0gZwB64EdQB1AHUAdQB1AHUAdQB1AHUHfQdgAIUHjQd1AHUAlQedB2AAYAClB6sHYACzB7YHvgfGB3UAzgfWBzMB3gfmB1EB7gf1B/0HlQENAQUIDQh1ABUIHQglCBcDLQg1CD0IRQhNCEEDUwh1AHUAdQBbCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIcAh3CHoIMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwAIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIgggwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAALAcsBywHLAcsBywHLAcsBywHLAcsB4oILAcsB44I0gaWCJ4Ipgh1AHUAqgiyCHUAdQB1AHUAdQB1AHUAdQB1AHUAtwh8AXUAvwh1AMUIyQjRCNkI4AjoCHUAdQB1AO4I9gj+CAYJDgkTCS0HGwkjCYIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiAAIAAAAFAAYABgAGIAXwBgAHEAdQBFAJUAogCyAKAAYABgAEIA4ABGANMA4QDxAMEBDwE1AFwBLAE6AQEBUQF4QkhCmEKoQrhCgAHIQsAB0MLAAcABwAHAAeDC6ABoAHDCwMMAAcABwAHAAdDDGMMAAcAB6MM4wwjDWMNow3jDaABoAGgAaABoAGgAaABoAGgAaABoAGgAaABoAGgAaABoAGgAaABoAEjDqABWw6bDqABpg6gAaABoAHcDvwOPA+gAaABfA/8DvwO/A78DvwO/A78DvwO/A78DvwO/A78DvwO/A78DvwO/A78DvwO/A78DvwO/A78DvwO/A78DpcPAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcAB9cPKwkyCToJMAB1AHUAdQBCCUoJTQl1AFUJXAljCWcJawkwADAAMAAwAHMJdQB2CX4JdQCECYoJjgmWCXUAngkwAGAAYABxAHUApgn3A64JtAl1ALkJdQDACTAAMAAwADAAdQB1AHUAdQB1AHUAdQB1AHUAowYNBMUIMAAwADAAMADICcsJ0wnZCRUE4QkwAOkJ8An4CTAAMAB1AAAKvwh1AAgKDwoXCh8KdQAwACcKLgp1ADYKqAmICT4KRgowADAAdQB1AE4KMAB1AFYKdQBeCnUAZQowADAAMAAwADAAMAAwADAAMAAVBHUAbQowADAAdQC5CXUKMAAwAHwBxAijBogEMgF9CoQKiASMCpQKmgqIBKIKqgquCogEDQG2Cr4KxgrLCjAAMADTCtsKCgHjCusK8Qr5CgELMAAwADAAMAB1AIsECQsRC3UANAEZCzAAMAAwADAAMAB1ACELKQswAHUANAExCzkLdQBBC0kLMABRC1kLMAAwADAAMAAwADAAdQBhCzAAMAAwAGAAYABpC3ELdwt/CzAAMACHC4sLkwubC58Lpwt1AK4Ltgt1APsDMAAwADAAMAAwADAAMAAwAL4LwwvLC9IL1wvdCzAAMADlC+kL8Qv5C/8LSQswADAAMAAwADAAMAAwADAAMAAHDDAAMAAwADAAMAAODBYMHgx1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1ACYMMAAwADAAdQB1AHUALgx1AHUAdQB1AHUAdQA2DDAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwAHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AD4MdQBGDHUAdQB1AHUAdQB1AEkMdQB1AHUAdQB1AFAMMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwAHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQBYDHUAdQB1AF8MMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUA+wMVBGcMMAAwAHwBbwx1AHcMfwyHDI8MMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAYABgAJcMMAAwADAAdQB1AJ8MlQClDDAAMACtDCwHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsB7UMLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AA0EMAC9DDAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAsBywHLAcsBywHLAcsBywHLQcwAMEMyAwsBywHLAcsBywHLAcsBywHLAcsBywHzAwwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwAHUAdQB1ANQM2QzhDDAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMABgAGAAYABgAGAAYABgAOkMYADxDGAA+AwADQYNYABhCWAAYAAODTAAMAAwADAAFg1gAGAAHg37AzAAMAAwADAAYABgACYNYAAsDTQNPA1gAEMNPg1LDWAAYABgAGAAYABgAGAAYABgAGAAUg1aDYsGVglhDV0NcQBnDW0NdQ15DWAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAlQCBDZUAiA2PDZcNMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAnw2nDTAAMAAwADAAMAAwAHUArw23DTAAMAAwADAAMAAwADAAMAAwADAAMAB1AL8NMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAB1AHUAdQB1AHUAdQDHDTAAYABgAM8NMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAA1w11ANwNMAAwAD0B5A0wADAAMAAwADAAMADsDfQN/A0EDgwOFA4wABsOMAAwADAAMAAwADAAMAAwANIG0gbSBtIG0gbSBtIG0gYjDigOwQUuDsEFMw7SBjoO0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIGQg5KDlIOVg7SBtIGXg5lDm0OdQ7SBtIGfQ6EDooOjQ6UDtIGmg6hDtIG0gaoDqwO0ga0DrwO0gZgAGAAYADEDmAAYAAkBtIGzA5gANIOYADaDokO0gbSBt8O5w7SBu8O0gb1DvwO0gZgAGAAxA7SBtIG0gbSBtIGYABgAGAAYAAED2AAsAUMD9IG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIGFA8sBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAccD9IGLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHJA8sBywHLAcsBywHLAccDywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywPLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAc0D9IG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIGLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAccD9IG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIGFA8sBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHPA/SBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gYUD0QPlQCVAJUAMAAwADAAMACVAJUAlQCVAJUAlQCVAEwPMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAA//8EAAQABAAEAAQABAAEAAQABAANAAMAAQABAAIABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQACgATABcAHgAbABoAHgAXABYAEgAeABsAGAAPABgAHABLAEsASwBLAEsASwBLAEsASwBLABgAGAAeAB4AHgATAB4AUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQABYAGwASAB4AHgAeAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAWAA0AEQAeAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAAQABAAEAAQABAAFAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAJABYAGgAbABsAGwAeAB0AHQAeAE8AFwAeAA0AHgAeABoAGwBPAE8ADgBQAB0AHQAdAE8ATwAXAE8ATwBPABYAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAB0AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAdAFAAUABQAFAAUABQAFAAUAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAFAAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAeAB4AHgAeAFAATwBAAE8ATwBPAEAATwBQAFAATwBQAB4AHgAeAB4AHgAeAB0AHQAdAB0AHgAdAB4ADgBQAFAAUABQAFAAHgAeAB4AHgAeAB4AHgBQAB4AUAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4ABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAJAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAkACQAJAAkACQAJAAkABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAeAB4AHgAeAFAAHgAeAB4AKwArAFAAUABQAFAAGABQACsAKwArACsAHgAeAFAAHgBQAFAAUAArAFAAKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4ABAAEAAQABAAEAAQABAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAUAAeAB4AHgAeAB4AHgBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAYAA0AKwArAB4AHgAbACsABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQADQAEAB4ABAAEAB4ABAAEABMABAArACsAKwArACsAKwArACsAVgBWAFYAVgBWAFYAVgBWAFYAVgBWAFYAVgBWAFYAVgBWAFYAVgBWAFYAVgBWAFYAVgBWAFYAKwArACsAKwBWAFYAVgBWAB4AHgArACsAKwArACsAKwArACsAKwArACsAHgAeAB4AHgAeAB4AHgAeAB4AGgAaABoAGAAYAB4AHgAEAAQABAAEAAQABAAEAAQABAAEAAQAEwAEACsAEwATAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABABLAEsASwBLAEsASwBLAEsASwBLABoAGQAZAB4AUABQAAQAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQABMAUAAEAAQABAAEAAQABAAEAB4AHgAEAAQABAAEAAQABABQAFAABAAEAB4ABAAEAAQABABQAFAASwBLAEsASwBLAEsASwBLAEsASwBQAFAAUAAeAB4AUAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwAeAFAABABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEAAQABAAEAFAAKwArACsAKwArACsAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEAAQAUABQAB4AHgAYABMAUAArACsABAAbABsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAFAABAAEAAQABAAEAFAABAAEAAQAUAAEAAQABAAEAAQAKwArAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAArACsAHgArAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwArACsAKwArACsAKwArAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAB4ABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAFAABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAUAAEAAQABAAEAAQABAAEAFAAUABQAFAAUABQAFAAUABQAFAABAAEAA0ADQBLAEsASwBLAEsASwBLAEsASwBLAB4AUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAArAFAAUABQAFAAUABQAFAAUAArACsAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQACsAUAArACsAKwBQAFAAUABQACsAKwAEAFAABAAEAAQABAAEAAQABAArACsABAAEACsAKwAEAAQABABQACsAKwArACsAKwArACsAKwAEACsAKwArACsAUABQACsAUABQAFAABAAEACsAKwBLAEsASwBLAEsASwBLAEsASwBLAFAAUAAaABoAUABQAFAAUABQAEwAHgAbAFAAHgAEACsAKwAEAAQABAArAFAAUABQAFAAUABQACsAKwArACsAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQACsAUABQACsAUABQACsAUABQACsAKwAEACsABAAEAAQABAAEACsAKwArACsABAAEACsAKwAEAAQABAArACsAKwAEACsAKwArACsAKwArACsAUABQAFAAUAArAFAAKwArACsAKwArACsAKwBLAEsASwBLAEsASwBLAEsASwBLAAQABABQAFAAUAAEAB4AKwArACsAKwArACsAKwArACsAKwAEAAQABAArAFAAUABQAFAAUABQAFAAUABQACsAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQACsAUABQACsAUABQAFAAUABQACsAKwAEAFAABAAEAAQABAAEAAQABAAEACsABAAEAAQAKwAEAAQABAArACsAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQAFAABAAEACsAKwBLAEsASwBLAEsASwBLAEsASwBLAB4AGwArACsAKwArACsAKwArAFAABAAEAAQABAAEAAQAKwAEAAQABAArAFAAUABQAFAAUABQAFAAUAArACsAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAAQABAArACsABAAEACsAKwAEAAQABAArACsAKwArACsAKwArAAQABAAEACsAKwArACsAUABQACsAUABQAFAABAAEACsAKwBLAEsASwBLAEsASwBLAEsASwBLAB4AUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArAAQAUAArAFAAUABQAFAAUABQACsAKwArAFAAUABQACsAUABQAFAAUAArACsAKwBQAFAAKwBQACsAUABQACsAKwArAFAAUAArACsAKwBQAFAAUAArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArAAQABAAEAAQABAArACsAKwAEAAQABAArAAQABAAEAAQAKwArAFAAKwArACsAKwArACsABAArACsAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAUABQAFAAHgAeAB4AHgAeAB4AGwAeACsAKwArACsAKwAEAAQABAAEAAQAUABQAFAAUABQAFAAUABQACsAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAUAAEAAQABAAEAAQABAAEACsABAAEAAQAKwAEAAQABAAEACsAKwArACsAKwArACsABAAEACsAUABQAFAAKwArACsAKwArAFAAUAAEAAQAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAKwAOAFAAUABQAFAAUABQAFAAHgBQAAQABAAEAA4AUABQAFAAUABQAFAAUABQACsAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAKwArAAQAUAAEAAQABAAEAAQABAAEACsABAAEAAQAKwAEAAQABAAEACsAKwArACsAKwArACsABAAEACsAKwArACsAKwArACsAUAArAFAAUAAEAAQAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwBQAFAAKwArACsAKwArACsAKwArACsAKwArACsAKwAEAAQABAAEAFAAUABQAFAAUABQAFAAUABQACsAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAFAABAAEAAQABAAEAAQABAArAAQABAAEACsABAAEAAQABABQAB4AKwArACsAKwBQAFAAUAAEAFAAUABQAFAAUABQAFAAUABQAFAABAAEACsAKwBLAEsASwBLAEsASwBLAEsASwBLAFAAUABQAFAAUABQAFAAUABQABoAUABQAFAAUABQAFAAKwAEAAQABAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQACsAUAArACsAUABQAFAAUABQAFAAUAArACsAKwAEACsAKwArACsABAAEAAQABAAEAAQAKwAEACsABAAEAAQABAAEAAQABAAEACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArAAQABAAeACsAKwArACsAKwArACsAKwArACsAKwArAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXAAqAFwAXAAqACoAKgAqACoAKgAqACsAKwArACsAGwBcAFwAXABcAFwAXABcACoAKgAqACoAKgAqACoAKgAeAEsASwBLAEsASwBLAEsASwBLAEsADQANACsAKwArACsAKwBcAFwAKwBcACsAXABcAFwAXABcACsAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcACsAXAArAFwAXABcAFwAXABcAFwAXABcAFwAKgBcAFwAKgAqACoAKgAqACoAKgAqACoAXAArACsAXABcAFwAXABcACsAXAArACoAKgAqACoAKgAqACsAKwBLAEsASwBLAEsASwBLAEsASwBLACsAKwBcAFwAXABcAFAADgAOAA4ADgAeAA4ADgAJAA4ADgANAAkAEwATABMAEwATAAkAHgATAB4AHgAeAAQABAAeAB4AHgAeAB4AHgBLAEsASwBLAEsASwBLAEsASwBLAFAAUABQAFAAUABQAFAAUABQAFAADQAEAB4ABAAeAAQAFgARABYAEQAEAAQAUABQAFAAUABQAFAAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQADQAEAAQABAAEAAQADQAEAAQAUABQAFAAUABQAAQABAAEAAQABAAEAAQABAAEAAQABAArAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAArAA0ADQAeAB4AHgAeAB4AHgAEAB4AHgAeAB4AHgAeACsAHgAeAA4ADgANAA4AHgAeAB4AHgAeAAkACQArACsAKwArACsAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgBcAEsASwBLAEsASwBLAEsASwBLAEsADQANAB4AHgAeAB4AXABcAFwAXABcAFwAKgAqACoAKgBcAFwAXABcACoAKgAqAFwAKgAqACoAXABcACoAKgAqACoAKgAqACoAXABcAFwAKgAqACoAKgBcAFwAXABcAFwAXABcAFwAXABcAFwAXABcACoAKgAqACoAKgAqACoAKgAqACoAKgAqAFwAKgBLAEsASwBLAEsASwBLAEsASwBLACoAKgAqACoAKgAqAFAAUABQAFAAUABQACsAUAArACsAKwArACsAUAArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAHgBQAFAAUABQAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFAAUABQAFAAUABQAFAAUABQACsAUABQAFAAUAArACsAUABQAFAAUABQAFAAUAArAFAAKwBQAFAAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAKwArAFAAUABQAFAAUABQAFAAKwBQACsAUABQAFAAUAArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsABAAEAAQAHgANAB4AHgAeAB4AHgAeAB4AUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAHgAeAB4AHgAeAB4AHgAeAB4AHgArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwBQAFAAUABQAFAAUAArACsADQBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAHgAeAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAANAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAWABEAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAA0ADQANAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAAQABAAEACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAANAA0AKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEACsAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUAArAAQABAArACsAKwArACsAKwArACsAKwArACsAKwBcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqAA0ADQAVAFwADQAeAA0AGwBcACoAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwAeAB4AEwATAA0ADQAOAB4AEwATAB4ABAAEAAQACQArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArAFAAUABQAFAAUAAEAAQAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQAUAArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwAEAAQABAAEAAQABAAEAAQABAAEAAQABAArACsAKwArAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsAKwArACsAHgArACsAKwATABMASwBLAEsASwBLAEsASwBLAEsASwBcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXAArACsAXABcAFwAXABcACsAKwArACsAKwArACsAKwArACsAKwBcAFwAXABcAFwAXABcAFwAXABcAFwAXAArACsAKwArAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAXAArACsAKwAqACoAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAAQABAArACsAHgAeAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcACoAKgAqACoAKgAqACoAKgAqACoAKwAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKwArAAQASwBLAEsASwBLAEsASwBLAEsASwArACsAKwArACsAKwBLAEsASwBLAEsASwBLAEsASwBLACsAKwArACsAKwArACoAKgAqACoAKgAqACoAXAAqACoAKgAqACoAKgArACsABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsABAAEAAQABAAEAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAAQABABQAFAAUABQAFAAUABQACsAKwArACsASwBLAEsASwBLAEsASwBLAEsASwANAA0AHgANAA0ADQANAB4AHgAeAB4AHgAeAB4AHgAeAB4ABAAEAAQABAAEAAQABAAEAAQAHgAeAB4AHgAeAB4AHgAeAB4AKwArACsABAAEAAQAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEAAQABAAEAAQABABQAFAASwBLAEsASwBLAEsASwBLAEsASwBQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsAKwArACsAKwArACsAKwAeAB4AHgAeAFAAUABQAFAABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsAKwArAA0ADQANAA0ADQBLAEsASwBLAEsASwBLAEsASwBLACsAKwArAFAAUABQAEsASwBLAEsASwBLAEsASwBLAEsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAA0ADQBQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwBQAFAAUAAeAB4AHgAeAB4AHgAeAB4AKwArACsAKwArACsAKwArAAQABAAEAB4ABAAEAAQABAAEAAQABAAEAAQABAAEAAQABABQAFAAUABQAAQAUABQAFAAUABQAFAABABQAFAABAAEAAQAUAArACsAKwArACsABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsABAAEAAQABAAEAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwArAFAAUABQAFAAUABQACsAKwBQAFAAUABQAFAAUABQAFAAKwBQACsAUAArAFAAKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeACsAKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArAB4AHgAeAB4AHgAeAB4AHgBQAB4AHgAeAFAAUABQACsAHgAeAB4AHgAeAB4AHgAeAB4AHgBQAFAAUABQACsAKwAeAB4AHgAeAB4AHgArAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwArAFAAUABQACsAHgAeAB4AHgAeAB4AHgAOAB4AKwANAA0ADQANAA0ADQANAAkADQANAA0ACAAEAAsABAAEAA0ACQANAA0ADAAdAB0AHgAXABcAFgAXABcAFwAWABcAHQAdAB4AHgAUABQAFAANAAEAAQAEAAQABAAEAAQACQAaABoAGgAaABoAGgAaABoAHgAXABcAHQAVABUAHgAeAB4AHgAeAB4AGAAWABEAFQAVABUAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4ADQAeAA0ADQANAA0AHgANAA0ADQAHAB4AHgAeAB4AKwAEAAQABAAEAAQABAAEAAQABAAEAFAAUAArACsATwBQAFAAUABQAFAAHgAeAB4AFgARAE8AUABPAE8ATwBPAFAAUABQAFAAUAAeAB4AHgAWABEAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArABsAGwAbABsAGwAbABsAGgAbABsAGwAbABsAGwAbABsAGwAbABsAGwAbABsAGgAbABsAGwAbABoAGwAbABoAGwAbABsAGwAbABsAGwAbABsAGwAbABsAGwAbABsAGwAbAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAHgAeAFAAGgAeAB0AHgBQAB4AGgAeAB4AHgAeAB4AHgAeAB4AHgBPAB4AUAAbAB4AHgBQAFAAUABQAFAAHgAeAB4AHQAdAB4AUAAeAFAAHgBQAB4AUABPAFAAUAAeAB4AHgAeAB4AHgAeAFAAUABQAFAAUAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAFAAHgBQAFAAUABQAE8ATwBQAFAAUABQAFAATwBQAFAATwBQAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAFAAUABQAFAATwBPAE8ATwBPAE8ATwBPAE8ATwBQAFAAUABQAFAAUABQAFAAUAAeAB4AUABQAFAAUABPAB4AHgArACsAKwArAB0AHQAdAB0AHQAdAB0AHQAdAB0AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB0AHgAdAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAdAB4AHQAdAB4AHgAeAB0AHQAeAB4AHQAeAB4AHgAdAB4AHQAbABsAHgAdAB4AHgAeAB4AHQAeAB4AHQAdAB0AHQAeAB4AHQAeAB0AHgAdAB0AHQAdAB0AHQAeAB0AHgAeAB4AHgAeAB0AHQAdAB0AHgAeAB4AHgAdAB0AHgAeAB4AHgAeAB4AHgAeAB4AHgAdAB4AHgAeAB0AHgAeAB4AHgAeAB0AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAdAB0AHgAeAB0AHQAdAB0AHgAeAB0AHQAeAB4AHQAdAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB0AHQAeAB4AHQAdAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHQAeAB4AHgAdAB4AHgAeAB4AHgAeAB4AHQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB0AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AFAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeABYAEQAWABEAHgAeAB4AHgAeAB4AHQAeAB4AHgAeAB4AHgAeACUAJQAeAB4AHgAeAB4AHgAeAB4AHgAWABEAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AJQAlACUAJQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAFAAHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHgAeAB4AHgAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAeAB4AHQAdAB0AHQAeAB4AHgAeAB4AHgAeAB4AHgAeAB0AHQAeAB0AHQAdAB0AHQAdAB0AHgAeAB4AHgAeAB4AHgAeAB0AHQAeAB4AHQAdAB4AHgAeAB4AHQAdAB4AHgAeAB4AHQAdAB0AHgAeAB0AHgAeAB0AHQAdAB0AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAdAB0AHQAdAB4AHgAeAB4AHgAeAB4AHgAeAB0AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAlACUAJQAlAB4AHQAdAB4AHgAdAB4AHgAeAB4AHQAdAB4AHgAeAB4AJQAlAB0AHQAlAB4AJQAlACUAIAAlACUAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAlACUAJQAeAB4AHgAeAB0AHgAdAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAdAB0AHgAdAB0AHQAeAB0AJQAdAB0AHgAdAB0AHgAdAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeACUAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHQAdAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAlACUAJQAlACUAJQAlACUAJQAlACUAJQAdAB0AHQAdACUAHgAlACUAJQAdACUAJQAdAB0AHQAlACUAHQAdACUAHQAdACUAJQAlAB4AHQAeAB4AHgAeAB0AHQAlAB0AHQAdAB0AHQAdACUAJQAlACUAJQAdACUAJQAgACUAHQAdACUAJQAlACUAJQAlACUAJQAeAB4AHgAlACUAIAAgACAAIAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB0AHgAeAB4AFwAXABcAFwAXABcAHgATABMAJQAeAB4AHgAWABEAFgARABYAEQAWABEAFgARABYAEQAWABEATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeABYAEQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAWABEAFgARABYAEQAWABEAFgARAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AFgARABYAEQAWABEAFgARABYAEQAWABEAFgARABYAEQAWABEAFgARABYAEQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAWABEAFgARAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AFgARAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAdAB0AHQAdAB0AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArACsAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AUABQAFAAUAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAEAAQABAAeAB4AKwArACsAKwArABMADQANAA0AUAATAA0AUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAUAANACsAKwArACsAKwArACsAKwArACsAKwArACsAKwAEAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQACsAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQACsAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXAA0ADQANAA0ADQANAA0ADQAeAA0AFgANAB4AHgAXABcAHgAeABcAFwAWABEAFgARABYAEQAWABEADQANAA0ADQATAFAADQANAB4ADQANAB4AHgAeAB4AHgAMAAwADQANAA0AHgANAA0AFgANAA0ADQANAA0ADQANAA0AHgANAB4ADQANAB4AHgAeACsAKwArACsAKwArACsAKwArACsAKwArACsAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACsAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAKwArACsAKwArACsAKwArACsAKwArACsAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwAlACUAJQAlACUAJQAlACUAJQAlACUAJQArACsAKwArAA0AEQARACUAJQBHAFcAVwAWABEAFgARABYAEQAWABEAFgARACUAJQAWABEAFgARABYAEQAWABEAFQAWABEAEQAlAFcAVwBXAFcAVwBXAFcAVwBXAAQABAAEAAQABAAEACUAVwBXAFcAVwA2ACUAJQBXAFcAVwBHAEcAJQAlACUAKwBRAFcAUQBXAFEAVwBRAFcAUQBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFEAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBRAFcAUQBXAFEAVwBXAFcAVwBXAFcAUQBXAFcAVwBXAFcAVwBRAFEAKwArAAQABAAVABUARwBHAFcAFQBRAFcAUQBXAFEAVwBRAFcAUQBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFEAVwBRAFcAUQBXAFcAVwBXAFcAVwBRAFcAVwBXAFcAVwBXAFEAUQBXAFcAVwBXABUAUQBHAEcAVwArACsAKwArACsAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAKwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAKwAlACUAVwBXAFcAVwAlACUAJQAlACUAJQAlACUAJQAlACsAKwArACsAKwArACsAKwArACsAKwArAFEAUQBRAFEAUQBRAFEAUQBRAFEAUQBRAFEAUQBRAFEAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQArAFcAVwBXAFcAVwBXAFcAVwBXAFcAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQBPAE8ATwBPAE8ATwBPAE8AJQBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXACUAJQAlAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAEcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAKwArACsAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAADQATAA0AUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABLAEsASwBLAEsASwBLAEsASwBLAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAFAABAAEAAQABAAeAAQABAAEAAQABAAEAAQABAAEAAQAHgBQAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AUABQAAQABABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAeAA0ADQANAA0ADQArACsAKwArACsAKwArACsAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAFAAUABQAFAAUABQAFAAUABQAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AUAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgBQAB4AHgAeAB4AHgAeAFAAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArACsAHgAeAB4AHgAeAB4AHgAeAB4AKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwAeAB4AUABQAFAAUABQAFAAUABQAFAAUABQAAQAUABQAFAABABQAFAAUABQAAQAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAAQABAAeAB4AHgAeAAQAKwArACsAUABQAFAAUABQAFAAHgAeABoAHgArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAADgAOABMAEwArACsAKwArACsAKwArACsABAAEAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAAQABAAEACsAKwArACsAKwArACsAKwANAA0ASwBLAEsASwBLAEsASwBLAEsASwArACsAKwArACsAKwAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABABQAFAAUABQAFAAUAAeAB4AHgBQAA4AUABQAAQAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEAA0ADQBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAKwArACsAKwArACsAKwArACsAKwArAB4AWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYACsAKwArAAQAHgAeAB4AHgAeAB4ADQANAA0AHgAeAB4AHgArAFAASwBLAEsASwBLAEsASwBLAEsASwArACsAKwArAB4AHgBcAFwAXABcAFwAKgBcAFwAXABcAFwAXABcAFwAXABcAEsASwBLAEsASwBLAEsASwBLAEsAXABcAFwAXABcACsAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsAKwArACsAKwArACsAKwArAFAAUABQAAQAUABQAFAAUABQAFAAUABQAAQABAArACsASwBLAEsASwBLAEsASwBLAEsASwArACsAHgANAA0ADQBcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAKgAqACoAXAAqACoAKgBcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXAAqAFwAKgAqACoAXABcACoAKgBcAFwAXABcAFwAKgAqAFwAKgBcACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFwAXABcACoAKgBQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAA0ADQBQAFAAUAAEAAQAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUAArACsAUABQAFAAUABQAFAAKwArAFAAUABQAFAAUABQACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAHgAeACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAAQADQAEAAQAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAVABVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBUAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVACsAKwArACsAKwArACsAKwArACsAKwArAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAKwArACsAKwBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAKwArACsAKwAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXACUAJQBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAJQAlACUAJQAlACUAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAKwArACsAKwArAFYABABWAFYAVgBWAFYAVgBWAFYAVgBWAB4AVgBWAFYAVgBWAFYAVgBWAFYAVgBWAFYAVgArAFYAVgBWAFYAVgArAFYAKwBWAFYAKwBWAFYAKwBWAFYAVgBWAFYAVgBWAFYAVgBWAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAEQAWAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUAAaAB4AKwArAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAGAARABEAGAAYABMAEwAWABEAFAArACsAKwArACsAKwAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACUAJQAlACUAJQAWABEAFgARABYAEQAWABEAFgARABYAEQAlACUAFgARACUAJQAlACUAJQAlACUAEQAlABEAKwAVABUAEwATACUAFgARABYAEQAWABEAJQAlACUAJQAlACUAJQAlACsAJQAbABoAJQArACsAKwArAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArAAcAKwATACUAJQAbABoAJQAlABYAEQAlACUAEQAlABEAJQBXAFcAVwBXAFcAVwBXAFcAVwBXABUAFQAlACUAJQATACUAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXABYAJQARACUAJQAlAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwAWACUAEQAlABYAEQARABYAEQARABUAVwBRAFEAUQBRAFEAUQBRAFEAUQBRAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAEcARwArACsAVwBXAFcAVwBXAFcAKwArAFcAVwBXAFcAVwBXACsAKwBXAFcAVwBXAFcAVwArACsAVwBXAFcAKwArACsAGgAbACUAJQAlABsAGwArAB4AHgAeAB4AHgAeAB4AKwArACsAKwArACsAKwArACsAKwAEAAQABAAQAB0AKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsADQANAA0AKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArAB4AHgAeAB4AHgAeAB4AHgAeAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgBQAFAAHgAeAB4AKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAAQAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwAEAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAA0AUABQAFAAUAArACsAKwArAFAAUABQAFAAUABQAFAAUAANAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAKwArACsAKwAeACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAKwArAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUAArACsAKwBQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwANAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAeAB4AUABQAFAAUABQAFAAUAArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUAArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArAA0AUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwAeAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAUABQAFAAUABQAAQABAAEACsABAAEACsAKwArACsAKwAEAAQABAAEAFAAUABQAFAAKwBQAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArAAQABAAEACsAKwArACsABABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArAA0ADQANAA0ADQANAA0ADQAeACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAeAFAAUABQAFAAUABQAFAAUAAeAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAArACsAKwArAFAAUABQAFAAUAANAA0ADQANAA0ADQAUACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsADQANAA0ADQANAA0ADQBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArAB4AHgAeAB4AKwArACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArAFAAUABQAFAAUABQAAQABAAEAAQAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUAArAAQABAANACsAKwBQAFAAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAAQABAAEAAQABAAEAAQABAAEAAQABABQAFAAUABQAB4AHgAeAB4AHgArACsAKwArACsAKwAEAAQABAAEAAQABAAEAA0ADQAeAB4AHgAeAB4AKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsABABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAAQABAAEAAQABAAEAAQABAAeAB4AHgANAA0ADQANACsAKwArACsAKwArACsAKwArACsAKwAeACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwArACsAKwBLAEsASwBLAEsASwBLAEsASwBLACsAKwArACsAKwArAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsASwBLAEsASwBLAEsASwBLAEsASwANAA0ADQANAFAABAAEAFAAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAeAA4AUAArACsAKwArACsAKwArACsAKwAEAFAAUABQAFAADQANAB4ADQAEAAQABAAEAB4ABAAEAEsASwBLAEsASwBLAEsASwBLAEsAUAAOAFAADQANAA0AKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAAQABAAEAAQABAANAA0AHgANAA0AHgAEACsAUABQAFAAUABQAFAAUAArAFAAKwBQAFAAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAA0AKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAAQABAAEAAQAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsABAAEAAQABAArAFAAUABQAFAAUABQAFAAUAArACsAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQACsAUABQACsAUABQAFAAUABQACsABAAEAFAABAAEAAQABAAEAAQABAArACsABAAEACsAKwAEAAQABAArACsAUAArACsAKwArACsAKwAEACsAKwArACsAKwBQAFAAUABQAFAABAAEACsAKwAEAAQABAAEAAQABAAEACsAKwArAAQABAAEAAQABAArACsAKwArACsAKwArACsAKwArACsABAAEAAQABAAEAAQABABQAFAAUABQAA0ADQANAA0AHgBLAEsASwBLAEsASwBLAEsASwBLAA0ADQArAB4ABABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwAEAAQABAAEAFAAUAAeAFAAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAArACsABAAEAAQABAAEAAQABAAEAAQADgANAA0AEwATAB4AHgAeAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAFAAUABQAFAABAAEACsAKwAEAA0ADQAeAFAAKwArACsAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAFAAKwArACsAKwArACsAKwBLAEsASwBLAEsASwBLAEsASwBLACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAKwArACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACsAKwArACsASwBLAEsASwBLAEsASwBLAEsASwBcAFwADQANAA0AKgBQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAeACsAKwArACsASwBLAEsASwBLAEsASwBLAEsASwBQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAKwArAFAAKwArAFAAUABQAFAAUABQAFAAUAArAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQAKwAEAAQAKwArAAQABAAEAAQAUAAEAFAABAAEAA0ADQANACsAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAArACsABAAEAAQABAAEAAQABABQAA4AUAAEACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFAABAAEAAQABAAEAAQABAAEAAQABABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAFAABAAEAAQABAAOAB4ADQANAA0ADQAOAB4ABAArACsAKwArACsAKwArACsAUAAEAAQABAAEAAQABAAEAAQABAAEAAQAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAA0ADQANAFAADgAOAA4ADQANACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEACsABAAEAAQABAAEAAQABAAEAFAADQANAA0ADQANACsAKwArACsAKwArACsAKwArACsASwBLAEsASwBLAEsASwBLAEsASwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwAOABMAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAArAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQACsAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAArACsAKwAEACsABAAEACsABAAEAAQABAAEAAQABABQAAQAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAUABQAFAAUABQAFAAKwBQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQAKwAEAAQAKwAEAAQABAAEAAQAUAArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAeAB4AKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAB4AHgAeAB4AHgAeAB4AHgAaABoAGgAaAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArACsAKwArACsAKwArACsAKwArACsAKwArAA0AUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsADQANAA0ADQANACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAASABIAEgAQwBDAEMAUABQAFAAUABDAFAAUABQAEgAQwBIAEMAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAASABDAEMAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwAJAAkACQAJAAkACQAJABYAEQArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABIAEMAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwANAA0AKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArAAQABAAEAAQABAANACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAA0ADQANAB4AHgAeAB4AHgAeAFAAUABQAFAADQAeACsAKwArACsAKwArACsAKwArACsASwBLAEsASwBLAEsASwBLAEsASwArAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAANAA0AHgAeACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwAEAFAABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAKwArACsAKwArACsAKwAEAAQABAAEAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAARwBHABUARwAJACsAKwArACsAKwArACsAKwArACsAKwAEAAQAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXACsAKwArACsAKwArACsAKwBXAFcAVwBXAFcAVwBXAFcAVwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAUQBRAFEAKwArACsAKwArACsAKwArACsAKwArACsAKwBRAFEAUQBRACsAKwArACsAKwArACsAKwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUAArACsAHgAEAAQADQAEAAQABAAEACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArACsAKwArACsAKwArACsAKwArAB4AHgAeAB4AHgAeAB4AKwArAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAAQABAAEAAQABAAeAB4AHgAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAB4AHgAEAAQABAAEAAQABAAEAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4ABAAEAAQABAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4ABAAEAAQAHgArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAKwArACsAKwArAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArACsAKwArACsAKwArACsAKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwBQAFAAKwArAFAAKwArAFAAUAArACsAUABQAFAAUAArAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeACsAUAArAFAAUABQAFAAUABQAFAAKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwBQAFAAUABQACsAKwBQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQACsAHgAeAFAAUABQAFAAUAArAFAAKwArACsAUABQAFAAUABQAFAAUAArAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAHgBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgBQAFAAUABQAFAAUABQAFAAUABQAFAAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAB4AHgAeAB4AHgAeAB4AHgAeACsAKwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAeAB4AHgAeAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAeAB4AHgAeAB4AHgAeAB4ABAAeAB4AHgAeAB4AHgAeAB4AHgAeAAQAHgAeAA0ADQANAA0AHgArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwAEAAQABAAEAAQAKwAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAAQABAAEAAQABAAEAAQAKwAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAKwArAAQABAAEAAQABAAEAAQAKwAEAAQAKwAEAAQABAAEAAQAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwAEAAQABAAEAAQABAAEAFAAUABQAFAAUABQAFAAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwBQAB4AKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArABsAUABQAFAAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEACsAKwArACsAKwArACsAKwArAB4AHgAeAB4ABAAEAAQABAAEAAQABABQACsAKwArACsASwBLAEsASwBLAEsASwBLAEsASwArACsAKwArABYAFgArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAGgBQAFAAUAAaAFAAUABQAFAAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAeAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwBQAFAAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAKwBQACsAKwBQACsAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAKwBQACsAUAArACsAKwArACsAKwBQACsAKwArACsAUAArAFAAKwBQACsAUABQAFAAKwBQAFAAKwBQACsAKwBQACsAUAArAFAAKwBQACsAUAArAFAAUAArAFAAKwArAFAAUABQAFAAKwBQAFAAUABQAFAAUABQACsAUABQAFAAUAArAFAAUABQAFAAKwBQACsAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAUABQAFAAKwBQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwAeAB4AKwArACsAKwArACsAKwArACsAKwArACsAKwArAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8AJQAlACUAHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHgAeAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB4AHgAeACUAJQAlAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAJQAlACUAJQAlACAAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAeAB4AJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlAB4AHgAlACUAJQAlACUAHgAlACUAJQAlACUAIAAgACAAJQAlACAAJQAlACAAIAAgACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACEAIQAhACEAIQAlACUAIAAgACUAJQAgACAAIAAgACAAIAAgACAAIAAgACAAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAJQAlACUAIAAlACUAJQAlACAAIAAgACUAIAAgACAAJQAlACUAJQAlACUAJQAgACUAIAAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAHgAlAB4AJQAeACUAJQAlACUAJQAgACUAJQAlACUAHgAlAB4AHgAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlAB4AHgAeAB4AHgAeAB4AJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAeAB4AHgAeAB4AHgAeAB4AHgAeACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACAAIAAlACUAJQAlACAAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACAAJQAlACUAJQAgACAAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAHgAeAB4AHgAeAB4AHgAeACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAeAB4AHgAeAB4AHgAlACUAJQAlACUAJQAlACAAIAAgACUAJQAlACAAIAAgACAAIAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeABcAFwAXABUAFQAVAB4AHgAeAB4AJQAlACUAIAAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACAAIAAgACUAJQAlACUAJQAlACUAJQAlACAAJQAlACUAJQAlACUAJQAlACUAJQAlACAAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AJQAlACUAJQAlACUAJQAlACUAJQAlACUAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AJQAlACUAJQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeACUAJQAlACUAJQAlACUAJQAeAB4AHgAeAB4AHgAeAB4AHgAeACUAJQAlACUAJQAlAB4AHgAeAB4AHgAeAB4AHgAlACUAJQAlACUAJQAlACUAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAgACUAJQAgACUAJQAlACUAJQAlACUAJQAgACAAIAAgACAAIAAgACAAJQAlACUAJQAlACUAIAAlACUAJQAlACUAJQAlACUAJQAgACAAIAAgACAAIAAgACAAIAAgACUAJQAgACAAIAAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAgACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACAAIAAlACAAIAAlACAAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAgACAAIAAlACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAJQAlAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAKwArAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXACUAJQBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwAlACUAJQAlACUAJQAlACUAJQAlACUAVwBXACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAKwAEACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAA==", kf = 50, Vw = 1, Ah = 2, eh = 3, Gw = 4, jw = 5, Hf = 7, th = 8, Tf = 9, $n = 10, $c = 11, Nf = 12, Zc = 13, qw = 14, ta = 15, Au = 16, wo = 17, Ji = 18, Ww = 19, _f = 20, eu = 21, $i = 22, Bc = 23, Zs = 24, Lr = 25, ra = 26, na = 27, Ai = 28, Xw = 29, ys = 30, zw = 31, vo = 32, mo = 33, tu = 34, ru = 35, nu = 36, ga = 37, su = 38, Vo = 39, Go = 40, wc = 41, rh = 42, Yw = 43, Jw = [9001, 65288], nh = "!", Re = "×", yo = "÷", iu = Pw(Kw), Qn = [ys, nu], au = [Vw, Ah, eh, jw], sh = [$n, th], Mf = [na, ra], $w = au.concat(sh), Pf = [su, Vo, Go, tu, ru], Zw = [ta, Zc], Av = function(t, e) {
  e === void 0 && (e = "strict");
  var A = [], r = [], n = [];
  return t.forEach(function(s, a) {
    var o = iu.get(s);
    if (o > kf ? (n.push(!0), o -= kf) : n.push(!1), ["normal", "auto", "loose"].indexOf(e) !== -1 && [8208, 8211, 12316, 12448].indexOf(s) !== -1)
      return r.push(a), A.push(Au);
    if (o === Gw || o === $c) {
      if (a === 0)
        return r.push(a), A.push(ys);
      var c = A[a - 1];
      return $w.indexOf(c) === -1 ? (r.push(r[a - 1]), A.push(c)) : (r.push(a), A.push(ys));
    }
    if (r.push(a), o === zw)
      return A.push(e === "strict" ? eu : ga);
    if (o === rh || o === Xw)
      return A.push(ys);
    if (o === Yw)
      return s >= 131072 && s <= 196605 || s >= 196608 && s <= 262141 ? A.push(ga) : A.push(ys);
    A.push(o);
  }), [r, A, n];
}, vc = function(t, e, A, r) {
  var n = r[A];
  if (Array.isArray(t) ? t.indexOf(n) !== -1 : t === n)
    for (var s = A; s <= r.length; ) {
      s++;
      var a = r[s];
      if (a === e)
        return !0;
      if (a !== $n)
        break;
    }
  if (n === $n)
    for (var s = A; s > 0; ) {
      s--;
      var o = r[s];
      if (Array.isArray(t) ? t.indexOf(o) !== -1 : t === o)
        for (var c = A; c <= r.length; ) {
          c++;
          var a = r[c];
          if (a === e)
            return !0;
          if (a !== $n)
            break;
        }
      if (o !== $n)
        break;
    }
  return !1;
}, Of = function(t, e) {
  for (var A = t; A >= 0; ) {
    var r = e[A];
    if (r === $n)
      A--;
    else
      return r;
  }
  return 0;
}, ev = function(t, e, A, r, n) {
  if (A[r] === 0)
    return Re;
  var s = r - 1;
  if (Array.isArray(n) && n[s] === !0)
    return Re;
  var a = s - 1, o = s + 1, c = e[s], d = a >= 0 ? e[a] : 0, h = e[o];
  if (c === Ah && h === eh)
    return Re;
  if (au.indexOf(c) !== -1)
    return nh;
  if (au.indexOf(h) !== -1 || sh.indexOf(h) !== -1)
    return Re;
  if (Of(s, e) === th)
    return yo;
  if (iu.get(t[s]) === $c || (c === vo || c === mo) && iu.get(t[o]) === $c || c === Hf || h === Hf || c === Tf || [$n, Zc, ta].indexOf(c) === -1 && h === Tf || [wo, Ji, Ww, Zs, Ai].indexOf(h) !== -1 || Of(s, e) === $i || vc(Bc, $i, s, e) || vc([wo, Ji], eu, s, e) || vc(Nf, Nf, s, e))
    return Re;
  if (c === $n)
    return yo;
  if (c === Bc || h === Bc)
    return Re;
  if (h === Au || c === Au)
    return yo;
  if ([Zc, ta, eu].indexOf(h) !== -1 || c === qw || d === nu && Zw.indexOf(c) !== -1 || c === Ai && h === nu || h === _f || Qn.indexOf(h) !== -1 && c === Lr || Qn.indexOf(c) !== -1 && h === Lr || c === na && [ga, vo, mo].indexOf(h) !== -1 || [ga, vo, mo].indexOf(c) !== -1 && h === ra || Qn.indexOf(c) !== -1 && Mf.indexOf(h) !== -1 || Mf.indexOf(c) !== -1 && Qn.indexOf(h) !== -1 || // (PR | PO) × ( OP | HY )? NU
  [na, ra].indexOf(c) !== -1 && (h === Lr || [$i, ta].indexOf(h) !== -1 && e[o + 1] === Lr) || // ( OP | HY ) × NU
  [$i, ta].indexOf(c) !== -1 && h === Lr || // NU ×	(NU | SY | IS)
  c === Lr && [Lr, Ai, Zs].indexOf(h) !== -1)
    return Re;
  if ([Lr, Ai, Zs, wo, Ji].indexOf(h) !== -1)
    for (var g = s; g >= 0; ) {
      var w = e[g];
      if (w === Lr)
        return Re;
      if ([Ai, Zs].indexOf(w) !== -1)
        g--;
      else
        break;
    }
  if ([na, ra].indexOf(h) !== -1)
    for (var g = [wo, Ji].indexOf(c) !== -1 ? a : s; g >= 0; ) {
      var w = e[g];
      if (w === Lr)
        return Re;
      if ([Ai, Zs].indexOf(w) !== -1)
        g--;
      else
        break;
    }
  if (su === c && [su, Vo, tu, ru].indexOf(h) !== -1 || [Vo, tu].indexOf(c) !== -1 && [Vo, Go].indexOf(h) !== -1 || [Go, ru].indexOf(c) !== -1 && h === Go || Pf.indexOf(c) !== -1 && [_f, ra].indexOf(h) !== -1 || Pf.indexOf(h) !== -1 && c === na || Qn.indexOf(c) !== -1 && Qn.indexOf(h) !== -1 || c === Zs && Qn.indexOf(h) !== -1 || Qn.concat(Lr).indexOf(c) !== -1 && h === $i && Jw.indexOf(t[o]) === -1 || Qn.concat(Lr).indexOf(h) !== -1 && c === Ji)
    return Re;
  if (c === wc && h === wc) {
    for (var p = A[s], m = 1; p > 0 && (p--, e[p] === wc); )
      m++;
    if (m % 2 !== 0)
      return Re;
  }
  return c === vo && h === mo ? Re : yo;
}, tv = function(t, e) {
  e || (e = { lineBreak: "normal", wordBreak: "normal" });
  var A = Av(t, e.lineBreak), r = A[0], n = A[1], s = A[2];
  (e.wordBreak === "break-all" || e.wordBreak === "break-word") && (n = n.map(function(o) {
    return [Lr, ys, rh].indexOf(o) !== -1 ? ga : o;
  }));
  var a = e.wordBreak === "keep-all" ? s.map(function(o, c) {
    return o && t[c] >= 19968 && t[c] <= 40959;
  }) : void 0;
  return [r, n, a];
}, rv = (
  /** @class */
  function() {
    function t(e, A, r, n) {
      this.codePoints = e, this.required = A === nh, this.start = r, this.end = n;
    }
    return t.prototype.slice = function() {
      return Qt.apply(void 0, this.codePoints.slice(this.start, this.end));
    }, t;
  }()
), nv = function(t, e) {
  var A = ul(t), r = tv(A, e), n = r[0], s = r[1], a = r[2], o = A.length, c = 0, d = 0;
  return {
    next: function() {
      if (d >= o)
        return { done: !0, value: null };
      for (var h = Re; d < o && (h = ev(A, s, n, ++d, a)) === Re; )
        ;
      if (h !== Re || d === o) {
        var g = new rv(A, h, c, d);
        return c = d, { value: g, done: !1 };
      }
      return { done: !0, value: null };
    }
  };
}, sv = 1, iv = 2, wa = 4, Rf = 8, Yo = 10, Kf = 47, la = 92, av = 9, ov = 32, Co = 34, Zi = 61, lv = 35, cv = 36, uv = 37, bo = 39, Fo = 40, Aa = 41, fv = 95, pr = 45, dv = 33, hv = 60, gv = 62, pv = 64, Bv = 91, wv = 93, vv = 61, mv = 123, Qo = 63, yv = 125, Vf = 124, Cv = 126, bv = 128, Gf = 65533, mc = 42, Cs = 43, Fv = 44, Qv = 58, Uv = 59, pa = 46, Lv = 0, Ev = 8, xv = 11, Iv = 14, Sv = 31, Dv = 127, on = -1, ih = 48, ah = 97, oh = 101, kv = 102, Hv = 117, Tv = 122, lh = 65, ch = 69, uh = 70, Nv = 85, _v = 90, tr = function(t) {
  return t >= ih && t <= 57;
}, Mv = function(t) {
  return t >= 55296 && t <= 57343;
}, ei = function(t) {
  return tr(t) || t >= lh && t <= uh || t >= ah && t <= kv;
}, Pv = function(t) {
  return t >= ah && t <= Tv;
}, Ov = function(t) {
  return t >= lh && t <= _v;
}, Rv = function(t) {
  return Pv(t) || Ov(t);
}, Kv = function(t) {
  return t >= bv;
}, Uo = function(t) {
  return t === Yo || t === av || t === ov;
}, Jo = function(t) {
  return Rv(t) || Kv(t) || t === fv;
}, jf = function(t) {
  return Jo(t) || tr(t) || t === pr;
}, Vv = function(t) {
  return t >= Lv && t <= Ev || t === xv || t >= Iv && t <= Sv || t === Dv;
}, zn = function(t, e) {
  return t !== la ? !1 : e !== Yo;
}, Lo = function(t, e, A) {
  return t === pr ? Jo(e) || zn(e, A) : Jo(t) ? !0 : !!(t === la && zn(t, e));
}, yc = function(t, e, A) {
  return t === Cs || t === pr ? tr(e) ? !0 : e === pa && tr(A) : tr(t === pa ? e : t);
}, Gv = function(t) {
  var e = 0, A = 1;
  (t[e] === Cs || t[e] === pr) && (t[e] === pr && (A = -1), e++);
  for (var r = []; tr(t[e]); )
    r.push(t[e++]);
  var n = r.length ? parseInt(Qt.apply(void 0, r), 10) : 0;
  t[e] === pa && e++;
  for (var s = []; tr(t[e]); )
    s.push(t[e++]);
  var a = s.length, o = a ? parseInt(Qt.apply(void 0, s), 10) : 0;
  (t[e] === ch || t[e] === oh) && e++;
  var c = 1;
  (t[e] === Cs || t[e] === pr) && (t[e] === pr && (c = -1), e++);
  for (var d = []; tr(t[e]); )
    d.push(t[e++]);
  var h = d.length ? parseInt(Qt.apply(void 0, d), 10) : 0;
  return A * (n + o * Math.pow(10, -a)) * Math.pow(10, c * h);
}, jv = {
  type: 2
  /* LEFT_PARENTHESIS_TOKEN */
}, qv = {
  type: 3
  /* RIGHT_PARENTHESIS_TOKEN */
}, Wv = {
  type: 4
  /* COMMA_TOKEN */
}, Xv = {
  type: 13
  /* SUFFIX_MATCH_TOKEN */
}, zv = {
  type: 8
  /* PREFIX_MATCH_TOKEN */
}, Yv = {
  type: 21
  /* COLUMN_TOKEN */
}, Jv = {
  type: 9
  /* DASH_MATCH_TOKEN */
}, $v = {
  type: 10
  /* INCLUDE_MATCH_TOKEN */
}, Zv = {
  type: 11
  /* LEFT_CURLY_BRACKET_TOKEN */
}, A5 = {
  type: 12
  /* RIGHT_CURLY_BRACKET_TOKEN */
}, e5 = {
  type: 14
  /* SUBSTRING_MATCH_TOKEN */
}, Eo = {
  type: 23
  /* BAD_URL_TOKEN */
}, t5 = {
  type: 1
  /* BAD_STRING_TOKEN */
}, r5 = {
  type: 25
  /* CDO_TOKEN */
}, n5 = {
  type: 24
  /* CDC_TOKEN */
}, s5 = {
  type: 26
  /* COLON_TOKEN */
}, i5 = {
  type: 27
  /* SEMICOLON_TOKEN */
}, a5 = {
  type: 28
  /* LEFT_SQUARE_BRACKET_TOKEN */
}, o5 = {
  type: 29
  /* RIGHT_SQUARE_BRACKET_TOKEN */
}, l5 = {
  type: 31
  /* WHITESPACE_TOKEN */
}, ou = {
  type: 32
  /* EOF_TOKEN */
}, fh = (
  /** @class */
  function() {
    function t() {
      this._value = [];
    }
    return t.prototype.write = function(e) {
      this._value = this._value.concat(ul(e));
    }, t.prototype.read = function() {
      for (var e = [], A = this.consumeToken(); A !== ou; )
        e.push(A), A = this.consumeToken();
      return e;
    }, t.prototype.consumeToken = function() {
      var e = this.consumeCodePoint();
      switch (e) {
        case Co:
          return this.consumeStringToken(Co);
        case lv:
          var A = this.peekCodePoint(0), r = this.peekCodePoint(1), n = this.peekCodePoint(2);
          if (jf(A) || zn(r, n)) {
            var s = Lo(A, r, n) ? iv : sv, a = this.consumeName();
            return { type: 5, value: a, flags: s };
          }
          break;
        case cv:
          if (this.peekCodePoint(0) === Zi)
            return this.consumeCodePoint(), Xv;
          break;
        case bo:
          return this.consumeStringToken(bo);
        case Fo:
          return jv;
        case Aa:
          return qv;
        case mc:
          if (this.peekCodePoint(0) === Zi)
            return this.consumeCodePoint(), e5;
          break;
        case Cs:
          if (yc(e, this.peekCodePoint(0), this.peekCodePoint(1)))
            return this.reconsumeCodePoint(e), this.consumeNumericToken();
          break;
        case Fv:
          return Wv;
        case pr:
          var o = e, c = this.peekCodePoint(0), d = this.peekCodePoint(1);
          if (yc(o, c, d))
            return this.reconsumeCodePoint(e), this.consumeNumericToken();
          if (Lo(o, c, d))
            return this.reconsumeCodePoint(e), this.consumeIdentLikeToken();
          if (c === pr && d === gv)
            return this.consumeCodePoint(), this.consumeCodePoint(), n5;
          break;
        case pa:
          if (yc(e, this.peekCodePoint(0), this.peekCodePoint(1)))
            return this.reconsumeCodePoint(e), this.consumeNumericToken();
          break;
        case Kf:
          if (this.peekCodePoint(0) === mc)
            for (this.consumeCodePoint(); ; ) {
              var h = this.consumeCodePoint();
              if (h === mc && (h = this.consumeCodePoint(), h === Kf))
                return this.consumeToken();
              if (h === on)
                return this.consumeToken();
            }
          break;
        case Qv:
          return s5;
        case Uv:
          return i5;
        case hv:
          if (this.peekCodePoint(0) === dv && this.peekCodePoint(1) === pr && this.peekCodePoint(2) === pr)
            return this.consumeCodePoint(), this.consumeCodePoint(), r5;
          break;
        case pv:
          var g = this.peekCodePoint(0), w = this.peekCodePoint(1), p = this.peekCodePoint(2);
          if (Lo(g, w, p)) {
            var a = this.consumeName();
            return { type: 7, value: a };
          }
          break;
        case Bv:
          return a5;
        case la:
          if (zn(e, this.peekCodePoint(0)))
            return this.reconsumeCodePoint(e), this.consumeIdentLikeToken();
          break;
        case wv:
          return o5;
        case vv:
          if (this.peekCodePoint(0) === Zi)
            return this.consumeCodePoint(), zv;
          break;
        case mv:
          return Zv;
        case yv:
          return A5;
        case Hv:
        case Nv:
          var m = this.peekCodePoint(0), F = this.peekCodePoint(1);
          return m === Cs && (ei(F) || F === Qo) && (this.consumeCodePoint(), this.consumeUnicodeRangeToken()), this.reconsumeCodePoint(e), this.consumeIdentLikeToken();
        case Vf:
          if (this.peekCodePoint(0) === Zi)
            return this.consumeCodePoint(), Jv;
          if (this.peekCodePoint(0) === Vf)
            return this.consumeCodePoint(), Yv;
          break;
        case Cv:
          if (this.peekCodePoint(0) === Zi)
            return this.consumeCodePoint(), $v;
          break;
        case on:
          return ou;
      }
      return Uo(e) ? (this.consumeWhiteSpace(), l5) : tr(e) ? (this.reconsumeCodePoint(e), this.consumeNumericToken()) : Jo(e) ? (this.reconsumeCodePoint(e), this.consumeIdentLikeToken()) : { type: 6, value: Qt(e) };
    }, t.prototype.consumeCodePoint = function() {
      var e = this._value.shift();
      return typeof e > "u" ? -1 : e;
    }, t.prototype.reconsumeCodePoint = function(e) {
      this._value.unshift(e);
    }, t.prototype.peekCodePoint = function(e) {
      return e >= this._value.length ? -1 : this._value[e];
    }, t.prototype.consumeUnicodeRangeToken = function() {
      for (var e = [], A = this.consumeCodePoint(); ei(A) && e.length < 6; )
        e.push(A), A = this.consumeCodePoint();
      for (var r = !1; A === Qo && e.length < 6; )
        e.push(A), A = this.consumeCodePoint(), r = !0;
      if (r) {
        var n = parseInt(Qt.apply(void 0, e.map(function(c) {
          return c === Qo ? ih : c;
        })), 16), s = parseInt(Qt.apply(void 0, e.map(function(c) {
          return c === Qo ? uh : c;
        })), 16);
        return { type: 30, start: n, end: s };
      }
      var a = parseInt(Qt.apply(void 0, e), 16);
      if (this.peekCodePoint(0) === pr && ei(this.peekCodePoint(1))) {
        this.consumeCodePoint(), A = this.consumeCodePoint();
        for (var o = []; ei(A) && o.length < 6; )
          o.push(A), A = this.consumeCodePoint();
        var s = parseInt(Qt.apply(void 0, o), 16);
        return { type: 30, start: a, end: s };
      } else
        return { type: 30, start: a, end: a };
    }, t.prototype.consumeIdentLikeToken = function() {
      var e = this.consumeName();
      return e.toLowerCase() === "url" && this.peekCodePoint(0) === Fo ? (this.consumeCodePoint(), this.consumeUrlToken()) : this.peekCodePoint(0) === Fo ? (this.consumeCodePoint(), { type: 19, value: e }) : { type: 20, value: e };
    }, t.prototype.consumeUrlToken = function() {
      var e = [];
      if (this.consumeWhiteSpace(), this.peekCodePoint(0) === on)
        return { type: 22, value: "" };
      var A = this.peekCodePoint(0);
      if (A === bo || A === Co) {
        var r = this.consumeStringToken(this.consumeCodePoint());
        return r.type === 0 && (this.consumeWhiteSpace(), this.peekCodePoint(0) === on || this.peekCodePoint(0) === Aa) ? (this.consumeCodePoint(), { type: 22, value: r.value }) : (this.consumeBadUrlRemnants(), Eo);
      }
      for (; ; ) {
        var n = this.consumeCodePoint();
        if (n === on || n === Aa)
          return { type: 22, value: Qt.apply(void 0, e) };
        if (Uo(n))
          return this.consumeWhiteSpace(), this.peekCodePoint(0) === on || this.peekCodePoint(0) === Aa ? (this.consumeCodePoint(), { type: 22, value: Qt.apply(void 0, e) }) : (this.consumeBadUrlRemnants(), Eo);
        if (n === Co || n === bo || n === Fo || Vv(n))
          return this.consumeBadUrlRemnants(), Eo;
        if (n === la)
          if (zn(n, this.peekCodePoint(0)))
            e.push(this.consumeEscapedCodePoint());
          else
            return this.consumeBadUrlRemnants(), Eo;
        else
          e.push(n);
      }
    }, t.prototype.consumeWhiteSpace = function() {
      for (; Uo(this.peekCodePoint(0)); )
        this.consumeCodePoint();
    }, t.prototype.consumeBadUrlRemnants = function() {
      for (; ; ) {
        var e = this.consumeCodePoint();
        if (e === Aa || e === on)
          return;
        zn(e, this.peekCodePoint(0)) && this.consumeEscapedCodePoint();
      }
    }, t.prototype.consumeStringSlice = function(e) {
      for (var A = 5e4, r = ""; e > 0; ) {
        var n = Math.min(A, e);
        r += Qt.apply(void 0, this._value.splice(0, n)), e -= n;
      }
      return this._value.shift(), r;
    }, t.prototype.consumeStringToken = function(e) {
      var A = "", r = 0;
      do {
        var n = this._value[r];
        if (n === on || n === void 0 || n === e)
          return A += this.consumeStringSlice(r), { type: 0, value: A };
        if (n === Yo)
          return this._value.splice(0, r), t5;
        if (n === la) {
          var s = this._value[r + 1];
          s !== on && s !== void 0 && (s === Yo ? (A += this.consumeStringSlice(r), r = -1, this._value.shift()) : zn(n, s) && (A += this.consumeStringSlice(r), A += Qt(this.consumeEscapedCodePoint()), r = -1));
        }
        r++;
      } while (!0);
    }, t.prototype.consumeNumber = function() {
      var e = [], A = wa, r = this.peekCodePoint(0);
      for ((r === Cs || r === pr) && e.push(this.consumeCodePoint()); tr(this.peekCodePoint(0)); )
        e.push(this.consumeCodePoint());
      r = this.peekCodePoint(0);
      var n = this.peekCodePoint(1);
      if (r === pa && tr(n))
        for (e.push(this.consumeCodePoint(), this.consumeCodePoint()), A = Rf; tr(this.peekCodePoint(0)); )
          e.push(this.consumeCodePoint());
      r = this.peekCodePoint(0), n = this.peekCodePoint(1);
      var s = this.peekCodePoint(2);
      if ((r === ch || r === oh) && ((n === Cs || n === pr) && tr(s) || tr(n)))
        for (e.push(this.consumeCodePoint(), this.consumeCodePoint()), A = Rf; tr(this.peekCodePoint(0)); )
          e.push(this.consumeCodePoint());
      return [Gv(e), A];
    }, t.prototype.consumeNumericToken = function() {
      var e = this.consumeNumber(), A = e[0], r = e[1], n = this.peekCodePoint(0), s = this.peekCodePoint(1), a = this.peekCodePoint(2);
      if (Lo(n, s, a)) {
        var o = this.consumeName();
        return { type: 15, number: A, flags: r, unit: o };
      }
      return n === uv ? (this.consumeCodePoint(), { type: 16, number: A, flags: r }) : { type: 17, number: A, flags: r };
    }, t.prototype.consumeEscapedCodePoint = function() {
      var e = this.consumeCodePoint();
      if (ei(e)) {
        for (var A = Qt(e); ei(this.peekCodePoint(0)) && A.length < 6; )
          A += Qt(this.consumeCodePoint());
        Uo(this.peekCodePoint(0)) && this.consumeCodePoint();
        var r = parseInt(A, 16);
        return r === 0 || Mv(r) || r > 1114111 ? Gf : r;
      }
      return e === on ? Gf : e;
    }, t.prototype.consumeName = function() {
      for (var e = ""; ; ) {
        var A = this.consumeCodePoint();
        if (jf(A))
          e += Qt(A);
        else if (zn(A, this.peekCodePoint(0)))
          e += Qt(this.consumeEscapedCodePoint());
        else
          return this.reconsumeCodePoint(A), e;
      }
    }, t;
  }()
), dh = (
  /** @class */
  function() {
    function t(e) {
      this._tokens = e;
    }
    return t.create = function(e) {
      var A = new fh();
      return A.write(e), new t(A.read());
    }, t.parseValue = function(e) {
      return t.create(e).parseComponentValue();
    }, t.parseValues = function(e) {
      return t.create(e).parseComponentValues();
    }, t.prototype.parseComponentValue = function() {
      for (var e = this.consumeToken(); e.type === 31; )
        e = this.consumeToken();
      if (e.type === 32)
        throw new SyntaxError("Error parsing CSS component value, unexpected EOF");
      this.reconsumeToken(e);
      var A = this.consumeComponentValue();
      do
        e = this.consumeToken();
      while (e.type === 31);
      if (e.type === 32)
        return A;
      throw new SyntaxError("Error parsing CSS component value, multiple values found when expecting only one");
    }, t.prototype.parseComponentValues = function() {
      for (var e = []; ; ) {
        var A = this.consumeComponentValue();
        if (A.type === 32)
          return e;
        e.push(A), e.push();
      }
    }, t.prototype.consumeComponentValue = function() {
      var e = this.consumeToken();
      switch (e.type) {
        case 11:
        case 28:
        case 2:
          return this.consumeSimpleBlock(e.type);
        case 19:
          return this.consumeFunction(e);
      }
      return e;
    }, t.prototype.consumeSimpleBlock = function(e) {
      for (var A = { type: e, values: [] }, r = this.consumeToken(); ; ) {
        if (r.type === 32 || u5(r, e))
          return A;
        this.reconsumeToken(r), A.values.push(this.consumeComponentValue()), r = this.consumeToken();
      }
    }, t.prototype.consumeFunction = function(e) {
      for (var A = {
        name: e.value,
        values: [],
        type: 18
        /* FUNCTION */
      }; ; ) {
        var r = this.consumeToken();
        if (r.type === 32 || r.type === 3)
          return A;
        this.reconsumeToken(r), A.values.push(this.consumeComponentValue());
      }
    }, t.prototype.consumeToken = function() {
      var e = this._tokens.shift();
      return typeof e > "u" ? ou : e;
    }, t.prototype.reconsumeToken = function(e) {
      this._tokens.unshift(e);
    }, t;
  }()
), va = function(t) {
  return t.type === 15;
}, wi = function(t) {
  return t.type === 17;
}, st = function(t) {
  return t.type === 20;
}, c5 = function(t) {
  return t.type === 0;
}, lu = function(t, e) {
  return st(t) && t.value === e;
}, hh = function(t) {
  return t.type !== 31;
}, Bi = function(t) {
  return t.type !== 31 && t.type !== 4;
}, dn = function(t) {
  var e = [], A = [];
  return t.forEach(function(r) {
    if (r.type === 4) {
      if (A.length === 0)
        throw new Error("Error parsing function args, zero tokens for arg");
      e.push(A), A = [];
      return;
    }
    r.type !== 31 && A.push(r);
  }), A.length && e.push(A), e;
}, u5 = function(t, e) {
  return e === 11 && t.type === 12 || e === 28 && t.type === 29 ? !0 : e === 2 && t.type === 3;
}, ss = function(t) {
  return t.type === 17 || t.type === 15;
}, kt = function(t) {
  return t.type === 16 || ss(t);
}, gh = function(t) {
  return t.length > 1 ? [t[0], t[1]] : [t[0]];
}, Wt = {
  type: 17,
  number: 0,
  flags: wa
}, Fu = {
  type: 16,
  number: 50,
  flags: wa
}, Zn = {
  type: 16,
  number: 100,
  flags: wa
}, sa = function(t, e, A) {
  var r = t[0], n = t[1];
  return [ut(r, e), ut(typeof n < "u" ? n : r, A)];
}, ut = function(t, e) {
  if (t.type === 16)
    return t.number / 100 * e;
  if (va(t))
    switch (t.unit) {
      case "rem":
      case "em":
        return 16 * t.number;
      // TODO use correct font-size
      case "px":
      default:
        return t.number;
    }
  return t.number;
}, ph = "deg", Bh = "grad", wh = "rad", vh = "turn", fl = {
  name: "angle",
  parse: function(t, e) {
    if (e.type === 15)
      switch (e.unit) {
        case ph:
          return Math.PI * e.number / 180;
        case Bh:
          return Math.PI / 200 * e.number;
        case wh:
          return e.number;
        case vh:
          return Math.PI * 2 * e.number;
      }
    throw new Error("Unsupported angle type");
  }
}, mh = function(t) {
  return t.type === 15 && (t.unit === ph || t.unit === Bh || t.unit === wh || t.unit === vh);
}, yh = function(t) {
  var e = t.filter(st).map(function(A) {
    return A.value;
  }).join(" ");
  switch (e) {
    case "to bottom right":
    case "to right bottom":
    case "left top":
    case "top left":
      return [Wt, Wt];
    case "to top":
    case "bottom":
      return Kr(0);
    case "to bottom left":
    case "to left bottom":
    case "right top":
    case "top right":
      return [Wt, Zn];
    case "to right":
    case "left":
      return Kr(90);
    case "to top left":
    case "to left top":
    case "right bottom":
    case "bottom right":
      return [Zn, Zn];
    case "to bottom":
    case "top":
      return Kr(180);
    case "to top right":
    case "to right top":
    case "left bottom":
    case "bottom left":
      return [Zn, Wt];
    case "to left":
    case "right":
      return Kr(270);
  }
  return 0;
}, Kr = function(t) {
  return Math.PI * t / 180;
}, es = {
  name: "color",
  parse: function(t, e) {
    if (e.type === 18) {
      var A = f5[e.name];
      if (typeof A > "u")
        throw new Error('Attempting to parse an unsupported color function "' + e.name + '"');
      return A(t, e.values);
    }
    if (e.type === 5) {
      if (e.value.length === 3) {
        var r = e.value.substring(0, 1), n = e.value.substring(1, 2), s = e.value.substring(2, 3);
        return As(parseInt(r + r, 16), parseInt(n + n, 16), parseInt(s + s, 16), 1);
      }
      if (e.value.length === 4) {
        var r = e.value.substring(0, 1), n = e.value.substring(1, 2), s = e.value.substring(2, 3), a = e.value.substring(3, 4);
        return As(parseInt(r + r, 16), parseInt(n + n, 16), parseInt(s + s, 16), parseInt(a + a, 16) / 255);
      }
      if (e.value.length === 6) {
        var r = e.value.substring(0, 2), n = e.value.substring(2, 4), s = e.value.substring(4, 6);
        return As(parseInt(r, 16), parseInt(n, 16), parseInt(s, 16), 1);
      }
      if (e.value.length === 8) {
        var r = e.value.substring(0, 2), n = e.value.substring(2, 4), s = e.value.substring(4, 6), a = e.value.substring(6, 8);
        return As(parseInt(r, 16), parseInt(n, 16), parseInt(s, 16), parseInt(a, 16) / 255);
      }
    }
    if (e.type === 20) {
      var o = En[e.value.toUpperCase()];
      if (typeof o < "u")
        return o;
    }
    return En.TRANSPARENT;
  }
}, ts = function(t) {
  return (255 & t) === 0;
}, Rt = function(t) {
  var e = 255 & t, A = 255 & t >> 8, r = 255 & t >> 16, n = 255 & t >> 24;
  return e < 255 ? "rgba(" + n + "," + r + "," + A + "," + e / 255 + ")" : "rgb(" + n + "," + r + "," + A + ")";
}, As = function(t, e, A, r) {
  return (t << 24 | e << 16 | A << 8 | Math.round(r * 255) << 0) >>> 0;
}, qf = function(t, e) {
  if (t.type === 17)
    return t.number;
  if (t.type === 16) {
    var A = e === 3 ? 1 : 255;
    return e === 3 ? t.number / 100 * A : Math.round(t.number / 100 * A);
  }
  return 0;
}, Wf = function(t, e) {
  var A = e.filter(Bi);
  if (A.length === 3) {
    var r = A.map(qf), n = r[0], s = r[1], a = r[2];
    return As(n, s, a, 1);
  }
  if (A.length === 4) {
    var o = A.map(qf), n = o[0], s = o[1], a = o[2], c = o[3];
    return As(n, s, a, c);
  }
  return 0;
};
function Cc(t, e, A) {
  return A < 0 && (A += 1), A >= 1 && (A -= 1), A < 1 / 6 ? (e - t) * A * 6 + t : A < 1 / 2 ? e : A < 2 / 3 ? (e - t) * 6 * (2 / 3 - A) + t : t;
}
var Xf = function(t, e) {
  var A = e.filter(Bi), r = A[0], n = A[1], s = A[2], a = A[3], o = (r.type === 17 ? Kr(r.number) : fl.parse(t, r)) / (Math.PI * 2), c = kt(n) ? n.number / 100 : 0, d = kt(s) ? s.number / 100 : 0, h = typeof a < "u" && kt(a) ? ut(a, 1) : 1;
  if (c === 0)
    return As(d * 255, d * 255, d * 255, 1);
  var g = d <= 0.5 ? d * (c + 1) : d + c - d * c, w = d * 2 - g, p = Cc(w, g, o + 1 / 3), m = Cc(w, g, o), F = Cc(w, g, o - 1 / 3);
  return As(p * 255, m * 255, F * 255, h);
}, f5 = {
  hsl: Xf,
  hsla: Xf,
  rgb: Wf,
  rgba: Wf
}, ca = function(t, e) {
  return es.parse(t, dh.create(e).parseComponentValue());
}, En = {
  ALICEBLUE: 4042850303,
  ANTIQUEWHITE: 4209760255,
  AQUA: 16777215,
  AQUAMARINE: 2147472639,
  AZURE: 4043309055,
  BEIGE: 4126530815,
  BISQUE: 4293182719,
  BLACK: 255,
  BLANCHEDALMOND: 4293643775,
  BLUE: 65535,
  BLUEVIOLET: 2318131967,
  BROWN: 2771004159,
  BURLYWOOD: 3736635391,
  CADETBLUE: 1604231423,
  CHARTREUSE: 2147418367,
  CHOCOLATE: 3530104575,
  CORAL: 4286533887,
  CORNFLOWERBLUE: 1687547391,
  CORNSILK: 4294499583,
  CRIMSON: 3692313855,
  CYAN: 16777215,
  DARKBLUE: 35839,
  DARKCYAN: 9145343,
  DARKGOLDENROD: 3095837695,
  DARKGRAY: 2846468607,
  DARKGREEN: 6553855,
  DARKGREY: 2846468607,
  DARKKHAKI: 3182914559,
  DARKMAGENTA: 2332068863,
  DARKOLIVEGREEN: 1433087999,
  DARKORANGE: 4287365375,
  DARKORCHID: 2570243327,
  DARKRED: 2332033279,
  DARKSALMON: 3918953215,
  DARKSEAGREEN: 2411499519,
  DARKSLATEBLUE: 1211993087,
  DARKSLATEGRAY: 793726975,
  DARKSLATEGREY: 793726975,
  DARKTURQUOISE: 13554175,
  DARKVIOLET: 2483082239,
  DEEPPINK: 4279538687,
  DEEPSKYBLUE: 12582911,
  DIMGRAY: 1768516095,
  DIMGREY: 1768516095,
  DODGERBLUE: 512819199,
  FIREBRICK: 2988581631,
  FLORALWHITE: 4294635775,
  FORESTGREEN: 579543807,
  FUCHSIA: 4278255615,
  GAINSBORO: 3705462015,
  GHOSTWHITE: 4177068031,
  GOLD: 4292280575,
  GOLDENROD: 3668254975,
  GRAY: 2155905279,
  GREEN: 8388863,
  GREENYELLOW: 2919182335,
  GREY: 2155905279,
  HONEYDEW: 4043305215,
  HOTPINK: 4285117695,
  INDIANRED: 3445382399,
  INDIGO: 1258324735,
  IVORY: 4294963455,
  KHAKI: 4041641215,
  LAVENDER: 3873897215,
  LAVENDERBLUSH: 4293981695,
  LAWNGREEN: 2096890111,
  LEMONCHIFFON: 4294626815,
  LIGHTBLUE: 2916673279,
  LIGHTCORAL: 4034953471,
  LIGHTCYAN: 3774873599,
  LIGHTGOLDENRODYELLOW: 4210742015,
  LIGHTGRAY: 3553874943,
  LIGHTGREEN: 2431553791,
  LIGHTGREY: 3553874943,
  LIGHTPINK: 4290167295,
  LIGHTSALMON: 4288707327,
  LIGHTSEAGREEN: 548580095,
  LIGHTSKYBLUE: 2278488831,
  LIGHTSLATEGRAY: 2005441023,
  LIGHTSLATEGREY: 2005441023,
  LIGHTSTEELBLUE: 2965692159,
  LIGHTYELLOW: 4294959359,
  LIME: 16711935,
  LIMEGREEN: 852308735,
  LINEN: 4210091775,
  MAGENTA: 4278255615,
  MAROON: 2147483903,
  MEDIUMAQUAMARINE: 1724754687,
  MEDIUMBLUE: 52735,
  MEDIUMORCHID: 3126187007,
  MEDIUMPURPLE: 2473647103,
  MEDIUMSEAGREEN: 1018393087,
  MEDIUMSLATEBLUE: 2070474495,
  MEDIUMSPRINGGREEN: 16423679,
  MEDIUMTURQUOISE: 1221709055,
  MEDIUMVIOLETRED: 3340076543,
  MIDNIGHTBLUE: 421097727,
  MINTCREAM: 4127193855,
  MISTYROSE: 4293190143,
  MOCCASIN: 4293178879,
  NAVAJOWHITE: 4292783615,
  NAVY: 33023,
  OLDLACE: 4260751103,
  OLIVE: 2155872511,
  OLIVEDRAB: 1804477439,
  ORANGE: 4289003775,
  ORANGERED: 4282712319,
  ORCHID: 3664828159,
  PALEGOLDENROD: 4008225535,
  PALEGREEN: 2566625535,
  PALETURQUOISE: 2951671551,
  PALEVIOLETRED: 3681588223,
  PAPAYAWHIP: 4293907967,
  PEACHPUFF: 4292524543,
  PERU: 3448061951,
  PINK: 4290825215,
  PLUM: 3718307327,
  POWDERBLUE: 2967529215,
  PURPLE: 2147516671,
  REBECCAPURPLE: 1714657791,
  RED: 4278190335,
  ROSYBROWN: 3163525119,
  ROYALBLUE: 1097458175,
  SADDLEBROWN: 2336560127,
  SALMON: 4202722047,
  SANDYBROWN: 4104413439,
  SEAGREEN: 780883967,
  SEASHELL: 4294307583,
  SIENNA: 2689740287,
  SILVER: 3233857791,
  SKYBLUE: 2278484991,
  SLATEBLUE: 1784335871,
  SLATEGRAY: 1887473919,
  SLATEGREY: 1887473919,
  SNOW: 4294638335,
  SPRINGGREEN: 16744447,
  STEELBLUE: 1182971135,
  TAN: 3535047935,
  TEAL: 8421631,
  THISTLE: 3636451583,
  TOMATO: 4284696575,
  TRANSPARENT: 0,
  TURQUOISE: 1088475391,
  VIOLET: 4001558271,
  WHEAT: 4125012991,
  WHITE: 4294967295,
  WHITESMOKE: 4126537215,
  YELLOW: 4294902015,
  YELLOWGREEN: 2597139199
}, d5 = {
  name: "background-clip",
  initialValue: "border-box",
  prefix: !1,
  type: 1,
  parse: function(t, e) {
    return e.map(function(A) {
      if (st(A))
        switch (A.value) {
          case "padding-box":
            return 1;
          case "content-box":
            return 2;
        }
      return 0;
    });
  }
}, h5 = {
  name: "background-color",
  initialValue: "transparent",
  prefix: !1,
  type: 3,
  format: "color"
}, dl = function(t, e) {
  var A = es.parse(t, e[0]), r = e[1];
  return r && kt(r) ? { color: A, stop: r } : { color: A, stop: null };
}, zf = function(t, e) {
  var A = t[0], r = t[t.length - 1];
  A.stop === null && (A.stop = Wt), r.stop === null && (r.stop = Zn);
  for (var n = [], s = 0, a = 0; a < t.length; a++) {
    var o = t[a].stop;
    if (o !== null) {
      var c = ut(o, e);
      c > s ? n.push(c) : n.push(s), s = c;
    } else
      n.push(null);
  }
  for (var d = null, a = 0; a < n.length; a++) {
    var h = n[a];
    if (h === null)
      d === null && (d = a);
    else if (d !== null) {
      for (var g = a - d, w = n[d - 1], p = (h - w) / (g + 1), m = 1; m <= g; m++)
        n[d + m - 1] = p * m;
      d = null;
    }
  }
  return t.map(function(F, D) {
    var v = F.color;
    return { color: v, stop: Math.max(Math.min(1, n[D] / e), 0) };
  });
}, g5 = function(t, e, A) {
  var r = e / 2, n = A / 2, s = ut(t[0], e) - r, a = n - ut(t[1], A);
  return (Math.atan2(a, s) + Math.PI * 2) % (Math.PI * 2);
}, p5 = function(t, e, A) {
  var r = typeof t == "number" ? t : g5(t, e, A), n = Math.abs(e * Math.sin(r)) + Math.abs(A * Math.cos(r)), s = e / 2, a = A / 2, o = n / 2, c = Math.sin(r - Math.PI / 2) * o, d = Math.cos(r - Math.PI / 2) * o;
  return [n, s - d, s + d, a - c, a + c];
}, $r = function(t, e) {
  return Math.sqrt(t * t + e * e);
}, Yf = function(t, e, A, r, n) {
  var s = [
    [0, 0],
    [0, e],
    [t, 0],
    [t, e]
  ];
  return s.reduce(function(a, o) {
    var c = o[0], d = o[1], h = $r(A - c, r - d);
    return (n ? h < a.optimumDistance : h > a.optimumDistance) ? {
      optimumCorner: o,
      optimumDistance: h
    } : a;
  }, {
    optimumDistance: n ? 1 / 0 : -1 / 0,
    optimumCorner: null
  }).optimumCorner;
}, B5 = function(t, e, A, r, n) {
  var s = 0, a = 0;
  switch (t.size) {
    case 0:
      t.shape === 0 ? s = a = Math.min(Math.abs(e), Math.abs(e - r), Math.abs(A), Math.abs(A - n)) : t.shape === 1 && (s = Math.min(Math.abs(e), Math.abs(e - r)), a = Math.min(Math.abs(A), Math.abs(A - n)));
      break;
    case 2:
      if (t.shape === 0)
        s = a = Math.min($r(e, A), $r(e, A - n), $r(e - r, A), $r(e - r, A - n));
      else if (t.shape === 1) {
        var o = Math.min(Math.abs(A), Math.abs(A - n)) / Math.min(Math.abs(e), Math.abs(e - r)), c = Yf(r, n, e, A, !0), d = c[0], h = c[1];
        s = $r(d - e, (h - A) / o), a = o * s;
      }
      break;
    case 1:
      t.shape === 0 ? s = a = Math.max(Math.abs(e), Math.abs(e - r), Math.abs(A), Math.abs(A - n)) : t.shape === 1 && (s = Math.max(Math.abs(e), Math.abs(e - r)), a = Math.max(Math.abs(A), Math.abs(A - n)));
      break;
    case 3:
      if (t.shape === 0)
        s = a = Math.max($r(e, A), $r(e, A - n), $r(e - r, A), $r(e - r, A - n));
      else if (t.shape === 1) {
        var o = Math.max(Math.abs(A), Math.abs(A - n)) / Math.max(Math.abs(e), Math.abs(e - r)), g = Yf(r, n, e, A, !1), d = g[0], h = g[1];
        s = $r(d - e, (h - A) / o), a = o * s;
      }
      break;
  }
  return Array.isArray(t.size) && (s = ut(t.size[0], r), a = t.size.length === 2 ? ut(t.size[1], n) : s), [s, a];
}, w5 = function(t, e) {
  var A = Kr(180), r = [];
  return dn(e).forEach(function(n, s) {
    if (s === 0) {
      var a = n[0];
      if (a.type === 20 && a.value === "to") {
        A = yh(n);
        return;
      } else if (mh(a)) {
        A = fl.parse(t, a);
        return;
      }
    }
    var o = dl(t, n);
    r.push(o);
  }), {
    angle: A,
    stops: r,
    type: 1
    /* LINEAR_GRADIENT */
  };
}, xo = function(t, e) {
  var A = Kr(180), r = [];
  return dn(e).forEach(function(n, s) {
    if (s === 0) {
      var a = n[0];
      if (a.type === 20 && ["top", "left", "right", "bottom"].indexOf(a.value) !== -1) {
        A = yh(n);
        return;
      } else if (mh(a)) {
        A = (fl.parse(t, a) + Kr(270)) % Kr(360);
        return;
      }
    }
    var o = dl(t, n);
    r.push(o);
  }), {
    angle: A,
    stops: r,
    type: 1
    /* LINEAR_GRADIENT */
  };
}, v5 = function(t, e) {
  var A = Kr(180), r = [], n = 1, s = 0, a = 3, o = [];
  return dn(e).forEach(function(c, d) {
    var h = c[0];
    if (d === 0) {
      if (st(h) && h.value === "linear") {
        n = 1;
        return;
      } else if (st(h) && h.value === "radial") {
        n = 2;
        return;
      }
    }
    if (h.type === 18) {
      if (h.name === "from") {
        var g = es.parse(t, h.values[0]);
        r.push({ stop: Wt, color: g });
      } else if (h.name === "to") {
        var g = es.parse(t, h.values[0]);
        r.push({ stop: Zn, color: g });
      } else if (h.name === "color-stop") {
        var w = h.values.filter(Bi);
        if (w.length === 2) {
          var g = es.parse(t, w[1]), p = w[0];
          wi(p) && r.push({
            stop: { type: 16, number: p.number * 100, flags: p.flags },
            color: g
          });
        }
      }
    }
  }), n === 1 ? {
    angle: (A + Kr(180)) % Kr(360),
    stops: r,
    type: n
  } : { size: a, shape: s, stops: r, position: o, type: n };
}, Ch = "closest-side", bh = "farthest-side", Fh = "closest-corner", Qh = "farthest-corner", Uh = "circle", Lh = "ellipse", Eh = "cover", xh = "contain", m5 = function(t, e) {
  var A = 0, r = 3, n = [], s = [];
  return dn(e).forEach(function(a, o) {
    var c = !0;
    if (o === 0) {
      var d = !1;
      c = a.reduce(function(g, w) {
        if (d)
          if (st(w))
            switch (w.value) {
              case "center":
                return s.push(Fu), g;
              case "top":
              case "left":
                return s.push(Wt), g;
              case "right":
              case "bottom":
                return s.push(Zn), g;
            }
          else (kt(w) || ss(w)) && s.push(w);
        else if (st(w))
          switch (w.value) {
            case Uh:
              return A = 0, !1;
            case Lh:
              return A = 1, !1;
            case "at":
              return d = !0, !1;
            case Ch:
              return r = 0, !1;
            case Eh:
            case bh:
              return r = 1, !1;
            case xh:
            case Fh:
              return r = 2, !1;
            case Qh:
              return r = 3, !1;
          }
        else if (ss(w) || kt(w))
          return Array.isArray(r) || (r = []), r.push(w), !1;
        return g;
      }, c);
    }
    if (c) {
      var h = dl(t, a);
      n.push(h);
    }
  }), {
    size: r,
    shape: A,
    stops: n,
    position: s,
    type: 2
    /* RADIAL_GRADIENT */
  };
}, Io = function(t, e) {
  var A = 0, r = 3, n = [], s = [];
  return dn(e).forEach(function(a, o) {
    var c = !0;
    if (o === 0 ? c = a.reduce(function(h, g) {
      if (st(g))
        switch (g.value) {
          case "center":
            return s.push(Fu), !1;
          case "top":
          case "left":
            return s.push(Wt), !1;
          case "right":
          case "bottom":
            return s.push(Zn), !1;
        }
      else if (kt(g) || ss(g))
        return s.push(g), !1;
      return h;
    }, c) : o === 1 && (c = a.reduce(function(h, g) {
      if (st(g))
        switch (g.value) {
          case Uh:
            return A = 0, !1;
          case Lh:
            return A = 1, !1;
          case xh:
          case Ch:
            return r = 0, !1;
          case bh:
            return r = 1, !1;
          case Fh:
            return r = 2, !1;
          case Eh:
          case Qh:
            return r = 3, !1;
        }
      else if (ss(g) || kt(g))
        return Array.isArray(r) || (r = []), r.push(g), !1;
      return h;
    }, c)), c) {
      var d = dl(t, a);
      n.push(d);
    }
  }), {
    size: r,
    shape: A,
    stops: n,
    position: s,
    type: 2
    /* RADIAL_GRADIENT */
  };
}, y5 = function(t) {
  return t.type === 1;
}, C5 = function(t) {
  return t.type === 2;
}, Qu = {
  name: "image",
  parse: function(t, e) {
    if (e.type === 22) {
      var A = {
        url: e.value,
        type: 0
        /* URL */
      };
      return t.cache.addImage(e.value), A;
    }
    if (e.type === 18) {
      var r = Ih[e.name];
      if (typeof r > "u")
        throw new Error('Attempting to parse an unsupported image function "' + e.name + '"');
      return r(t, e.values);
    }
    throw new Error("Unsupported image type " + e.type);
  }
};
function b5(t) {
  return !(t.type === 20 && t.value === "none") && (t.type !== 18 || !!Ih[t.name]);
}
var Ih = {
  "linear-gradient": w5,
  "-moz-linear-gradient": xo,
  "-ms-linear-gradient": xo,
  "-o-linear-gradient": xo,
  "-webkit-linear-gradient": xo,
  "radial-gradient": m5,
  "-moz-radial-gradient": Io,
  "-ms-radial-gradient": Io,
  "-o-radial-gradient": Io,
  "-webkit-radial-gradient": Io,
  "-webkit-gradient": v5
}, F5 = {
  name: "background-image",
  initialValue: "none",
  type: 1,
  prefix: !1,
  parse: function(t, e) {
    if (e.length === 0)
      return [];
    var A = e[0];
    return A.type === 20 && A.value === "none" ? [] : e.filter(function(r) {
      return Bi(r) && b5(r);
    }).map(function(r) {
      return Qu.parse(t, r);
    });
  }
}, Q5 = {
  name: "background-origin",
  initialValue: "border-box",
  prefix: !1,
  type: 1,
  parse: function(t, e) {
    return e.map(function(A) {
      if (st(A))
        switch (A.value) {
          case "padding-box":
            return 1;
          case "content-box":
            return 2;
        }
      return 0;
    });
  }
}, U5 = {
  name: "background-position",
  initialValue: "0% 0%",
  type: 1,
  prefix: !1,
  parse: function(t, e) {
    return dn(e).map(function(A) {
      return A.filter(kt);
    }).map(gh);
  }
}, L5 = {
  name: "background-repeat",
  initialValue: "repeat",
  prefix: !1,
  type: 1,
  parse: function(t, e) {
    return dn(e).map(function(A) {
      return A.filter(st).map(function(r) {
        return r.value;
      }).join(" ");
    }).map(E5);
  }
}, E5 = function(t) {
  switch (t) {
    case "no-repeat":
      return 1;
    case "repeat-x":
    case "repeat no-repeat":
      return 2;
    case "repeat-y":
    case "no-repeat repeat":
      return 3;
    case "repeat":
    default:
      return 0;
  }
}, pi;
(function(t) {
  t.AUTO = "auto", t.CONTAIN = "contain", t.COVER = "cover";
})(pi || (pi = {}));
var x5 = {
  name: "background-size",
  initialValue: "0",
  prefix: !1,
  type: 1,
  parse: function(t, e) {
    return dn(e).map(function(A) {
      return A.filter(I5);
    });
  }
}, I5 = function(t) {
  return st(t) || kt(t);
}, hl = function(t) {
  return {
    name: "border-" + t + "-color",
    initialValue: "transparent",
    prefix: !1,
    type: 3,
    format: "color"
  };
}, S5 = hl("top"), D5 = hl("right"), k5 = hl("bottom"), H5 = hl("left"), gl = function(t) {
  return {
    name: "border-radius-" + t,
    initialValue: "0 0",
    prefix: !1,
    type: 1,
    parse: function(e, A) {
      return gh(A.filter(kt));
    }
  };
}, T5 = gl("top-left"), N5 = gl("top-right"), _5 = gl("bottom-right"), M5 = gl("bottom-left"), pl = function(t) {
  return {
    name: "border-" + t + "-style",
    initialValue: "solid",
    prefix: !1,
    type: 2,
    parse: function(e, A) {
      switch (A) {
        case "none":
          return 0;
        case "dashed":
          return 2;
        case "dotted":
          return 3;
        case "double":
          return 4;
      }
      return 1;
    }
  };
}, P5 = pl("top"), O5 = pl("right"), R5 = pl("bottom"), K5 = pl("left"), Bl = function(t) {
  return {
    name: "border-" + t + "-width",
    initialValue: "0",
    type: 0,
    prefix: !1,
    parse: function(e, A) {
      return va(A) ? A.number : 0;
    }
  };
}, V5 = Bl("top"), G5 = Bl("right"), j5 = Bl("bottom"), q5 = Bl("left"), W5 = {
  name: "color",
  initialValue: "transparent",
  prefix: !1,
  type: 3,
  format: "color"
}, X5 = {
  name: "direction",
  initialValue: "ltr",
  prefix: !1,
  type: 2,
  parse: function(t, e) {
    switch (e) {
      case "rtl":
        return 1;
      case "ltr":
      default:
        return 0;
    }
  }
}, z5 = {
  name: "display",
  initialValue: "inline-block",
  prefix: !1,
  type: 1,
  parse: function(t, e) {
    return e.filter(st).reduce(
      function(A, r) {
        return A | Y5(r.value);
      },
      0
      /* NONE */
    );
  }
}, Y5 = function(t) {
  switch (t) {
    case "block":
    case "-webkit-box":
      return 2;
    case "inline":
      return 4;
    case "run-in":
      return 8;
    case "flow":
      return 16;
    case "flow-root":
      return 32;
    case "table":
      return 64;
    case "flex":
    case "-webkit-flex":
      return 128;
    case "grid":
    case "-ms-grid":
      return 256;
    case "ruby":
      return 512;
    case "subgrid":
      return 1024;
    case "list-item":
      return 2048;
    case "table-row-group":
      return 4096;
    case "table-header-group":
      return 8192;
    case "table-footer-group":
      return 16384;
    case "table-row":
      return 32768;
    case "table-cell":
      return 65536;
    case "table-column-group":
      return 131072;
    case "table-column":
      return 262144;
    case "table-caption":
      return 524288;
    case "ruby-base":
      return 1048576;
    case "ruby-text":
      return 2097152;
    case "ruby-base-container":
      return 4194304;
    case "ruby-text-container":
      return 8388608;
    case "contents":
      return 16777216;
    case "inline-block":
      return 33554432;
    case "inline-list-item":
      return 67108864;
    case "inline-table":
      return 134217728;
    case "inline-flex":
      return 268435456;
    case "inline-grid":
      return 536870912;
  }
  return 0;
}, J5 = {
  name: "float",
  initialValue: "none",
  prefix: !1,
  type: 2,
  parse: function(t, e) {
    switch (e) {
      case "left":
        return 1;
      case "right":
        return 2;
      case "inline-start":
        return 3;
      case "inline-end":
        return 4;
    }
    return 0;
  }
}, $5 = {
  name: "letter-spacing",
  initialValue: "0",
  prefix: !1,
  type: 0,
  parse: function(t, e) {
    return e.type === 20 && e.value === "normal" ? 0 : e.type === 17 || e.type === 15 ? e.number : 0;
  }
}, $o;
(function(t) {
  t.NORMAL = "normal", t.STRICT = "strict";
})($o || ($o = {}));
var Z5 = {
  name: "line-break",
  initialValue: "normal",
  prefix: !1,
  type: 2,
  parse: function(t, e) {
    switch (e) {
      case "strict":
        return $o.STRICT;
      case "normal":
      default:
        return $o.NORMAL;
    }
  }
}, Am = {
  name: "line-height",
  initialValue: "normal",
  prefix: !1,
  type: 4
  /* TOKEN_VALUE */
}, Jf = function(t, e) {
  return st(t) && t.value === "normal" ? 1.2 * e : t.type === 17 ? e * t.number : kt(t) ? ut(t, e) : e;
}, em = {
  name: "list-style-image",
  initialValue: "none",
  type: 0,
  prefix: !1,
  parse: function(t, e) {
    return e.type === 20 && e.value === "none" ? null : Qu.parse(t, e);
  }
}, tm = {
  name: "list-style-position",
  initialValue: "outside",
  prefix: !1,
  type: 2,
  parse: function(t, e) {
    switch (e) {
      case "inside":
        return 0;
      case "outside":
      default:
        return 1;
    }
  }
}, cu = {
  name: "list-style-type",
  initialValue: "none",
  prefix: !1,
  type: 2,
  parse: function(t, e) {
    switch (e) {
      case "disc":
        return 0;
      case "circle":
        return 1;
      case "square":
        return 2;
      case "decimal":
        return 3;
      case "cjk-decimal":
        return 4;
      case "decimal-leading-zero":
        return 5;
      case "lower-roman":
        return 6;
      case "upper-roman":
        return 7;
      case "lower-greek":
        return 8;
      case "lower-alpha":
        return 9;
      case "upper-alpha":
        return 10;
      case "arabic-indic":
        return 11;
      case "armenian":
        return 12;
      case "bengali":
        return 13;
      case "cambodian":
        return 14;
      case "cjk-earthly-branch":
        return 15;
      case "cjk-heavenly-stem":
        return 16;
      case "cjk-ideographic":
        return 17;
      case "devanagari":
        return 18;
      case "ethiopic-numeric":
        return 19;
      case "georgian":
        return 20;
      case "gujarati":
        return 21;
      case "gurmukhi":
        return 22;
      case "hebrew":
        return 22;
      case "hiragana":
        return 23;
      case "hiragana-iroha":
        return 24;
      case "japanese-formal":
        return 25;
      case "japanese-informal":
        return 26;
      case "kannada":
        return 27;
      case "katakana":
        return 28;
      case "katakana-iroha":
        return 29;
      case "khmer":
        return 30;
      case "korean-hangul-formal":
        return 31;
      case "korean-hanja-formal":
        return 32;
      case "korean-hanja-informal":
        return 33;
      case "lao":
        return 34;
      case "lower-armenian":
        return 35;
      case "malayalam":
        return 36;
      case "mongolian":
        return 37;
      case "myanmar":
        return 38;
      case "oriya":
        return 39;
      case "persian":
        return 40;
      case "simp-chinese-formal":
        return 41;
      case "simp-chinese-informal":
        return 42;
      case "tamil":
        return 43;
      case "telugu":
        return 44;
      case "thai":
        return 45;
      case "tibetan":
        return 46;
      case "trad-chinese-formal":
        return 47;
      case "trad-chinese-informal":
        return 48;
      case "upper-armenian":
        return 49;
      case "disclosure-open":
        return 50;
      case "disclosure-closed":
        return 51;
      case "none":
      default:
        return -1;
    }
  }
}, wl = function(t) {
  return {
    name: "margin-" + t,
    initialValue: "0",
    prefix: !1,
    type: 4
    /* TOKEN_VALUE */
  };
}, rm = wl("top"), nm = wl("right"), sm = wl("bottom"), im = wl("left"), am = {
  name: "overflow",
  initialValue: "visible",
  prefix: !1,
  type: 1,
  parse: function(t, e) {
    return e.filter(st).map(function(A) {
      switch (A.value) {
        case "hidden":
          return 1;
        case "scroll":
          return 2;
        case "clip":
          return 3;
        case "auto":
          return 4;
        case "visible":
        default:
          return 0;
      }
    });
  }
}, om = {
  name: "overflow-wrap",
  initialValue: "normal",
  prefix: !1,
  type: 2,
  parse: function(t, e) {
    switch (e) {
      case "break-word":
        return "break-word";
      case "normal":
      default:
        return "normal";
    }
  }
}, vl = function(t) {
  return {
    name: "padding-" + t,
    initialValue: "0",
    prefix: !1,
    type: 3,
    format: "length-percentage"
  };
}, lm = vl("top"), cm = vl("right"), um = vl("bottom"), fm = vl("left"), dm = {
  name: "text-align",
  initialValue: "left",
  prefix: !1,
  type: 2,
  parse: function(t, e) {
    switch (e) {
      case "right":
        return 2;
      case "center":
      case "justify":
        return 1;
      case "left":
      default:
        return 0;
    }
  }
}, hm = {
  name: "position",
  initialValue: "static",
  prefix: !1,
  type: 2,
  parse: function(t, e) {
    switch (e) {
      case "relative":
        return 1;
      case "absolute":
        return 2;
      case "fixed":
        return 3;
      case "sticky":
        return 4;
    }
    return 0;
  }
}, gm = {
  name: "text-shadow",
  initialValue: "none",
  type: 1,
  prefix: !1,
  parse: function(t, e) {
    return e.length === 1 && lu(e[0], "none") ? [] : dn(e).map(function(A) {
      for (var r = {
        color: En.TRANSPARENT,
        offsetX: Wt,
        offsetY: Wt,
        blur: Wt
      }, n = 0, s = 0; s < A.length; s++) {
        var a = A[s];
        ss(a) ? (n === 0 ? r.offsetX = a : n === 1 ? r.offsetY = a : r.blur = a, n++) : r.color = es.parse(t, a);
      }
      return r;
    });
  }
}, pm = {
  name: "text-transform",
  initialValue: "none",
  prefix: !1,
  type: 2,
  parse: function(t, e) {
    switch (e) {
      case "uppercase":
        return 2;
      case "lowercase":
        return 1;
      case "capitalize":
        return 3;
    }
    return 0;
  }
}, Bm = {
  name: "transform",
  initialValue: "none",
  prefix: !0,
  type: 0,
  parse: function(t, e) {
    if (e.type === 20 && e.value === "none")
      return null;
    if (e.type === 18) {
      var A = mm[e.name];
      if (typeof A > "u")
        throw new Error('Attempting to parse an unsupported transform function "' + e.name + '"');
      return A(e.values);
    }
    return null;
  }
}, wm = function(t) {
  var e = t.filter(function(A) {
    return A.type === 17;
  }).map(function(A) {
    return A.number;
  });
  return e.length === 6 ? e : null;
}, vm = function(t) {
  var e = t.filter(function(c) {
    return c.type === 17;
  }).map(function(c) {
    return c.number;
  }), A = e[0], r = e[1];
  e[2], e[3];
  var n = e[4], s = e[5];
  e[6], e[7], e[8], e[9], e[10], e[11];
  var a = e[12], o = e[13];
  return e[14], e[15], e.length === 16 ? [A, r, n, s, a, o] : null;
}, mm = {
  matrix: wm,
  matrix3d: vm
}, $f = {
  type: 16,
  number: 50,
  flags: wa
}, ym = [$f, $f], Cm = {
  name: "transform-origin",
  initialValue: "50% 50%",
  prefix: !0,
  type: 1,
  parse: function(t, e) {
    var A = e.filter(kt);
    return A.length !== 2 ? ym : [A[0], A[1]];
  }
}, bm = {
  name: "visible",
  initialValue: "none",
  prefix: !1,
  type: 2,
  parse: function(t, e) {
    switch (e) {
      case "hidden":
        return 1;
      case "collapse":
        return 2;
      case "visible":
      default:
        return 0;
    }
  }
}, ua;
(function(t) {
  t.NORMAL = "normal", t.BREAK_ALL = "break-all", t.KEEP_ALL = "keep-all";
})(ua || (ua = {}));
var Fm = {
  name: "word-break",
  initialValue: "normal",
  prefix: !1,
  type: 2,
  parse: function(t, e) {
    switch (e) {
      case "break-all":
        return ua.BREAK_ALL;
      case "keep-all":
        return ua.KEEP_ALL;
      case "normal":
      default:
        return ua.NORMAL;
    }
  }
}, Qm = {
  name: "z-index",
  initialValue: "auto",
  prefix: !1,
  type: 0,
  parse: function(t, e) {
    if (e.type === 20)
      return { auto: !0, order: 0 };
    if (wi(e))
      return { auto: !1, order: e.number };
    throw new Error("Invalid z-index number parsed");
  }
}, Sh = {
  name: "time",
  parse: function(t, e) {
    if (e.type === 15)
      switch (e.unit.toLowerCase()) {
        case "s":
          return 1e3 * e.number;
        case "ms":
          return e.number;
      }
    throw new Error("Unsupported time type");
  }
}, Um = {
  name: "opacity",
  initialValue: "1",
  type: 0,
  prefix: !1,
  parse: function(t, e) {
    return wi(e) ? e.number : 1;
  }
}, Lm = {
  name: "text-decoration-color",
  initialValue: "transparent",
  prefix: !1,
  type: 3,
  format: "color"
}, Em = {
  name: "text-decoration-line",
  initialValue: "none",
  prefix: !1,
  type: 1,
  parse: function(t, e) {
    return e.filter(st).map(function(A) {
      switch (A.value) {
        case "underline":
          return 1;
        case "overline":
          return 2;
        case "line-through":
          return 3;
        case "none":
          return 4;
      }
      return 0;
    }).filter(function(A) {
      return A !== 0;
    });
  }
}, xm = {
  name: "font-family",
  initialValue: "",
  prefix: !1,
  type: 1,
  parse: function(t, e) {
    var A = [], r = [];
    return e.forEach(function(n) {
      switch (n.type) {
        case 20:
        case 0:
          A.push(n.value);
          break;
        case 17:
          A.push(n.number.toString());
          break;
        case 4:
          r.push(A.join(" ")), A.length = 0;
          break;
      }
    }), A.length && r.push(A.join(" ")), r.map(function(n) {
      return n.indexOf(" ") === -1 ? n : "'" + n + "'";
    });
  }
}, Im = {
  name: "font-size",
  initialValue: "0",
  prefix: !1,
  type: 3,
  format: "length"
}, Sm = {
  name: "font-weight",
  initialValue: "normal",
  type: 0,
  prefix: !1,
  parse: function(t, e) {
    if (wi(e))
      return e.number;
    if (st(e))
      switch (e.value) {
        case "bold":
          return 700;
        case "normal":
        default:
          return 400;
      }
    return 400;
  }
}, Dm = {
  name: "font-variant",
  initialValue: "none",
  type: 1,
  prefix: !1,
  parse: function(t, e) {
    return e.filter(st).map(function(A) {
      return A.value;
    });
  }
}, km = {
  name: "font-style",
  initialValue: "normal",
  prefix: !1,
  type: 2,
  parse: function(t, e) {
    switch (e) {
      case "oblique":
        return "oblique";
      case "italic":
        return "italic";
      case "normal":
      default:
        return "normal";
    }
  }
}, Nt = function(t, e) {
  return (t & e) !== 0;
}, Hm = {
  name: "content",
  initialValue: "none",
  type: 1,
  prefix: !1,
  parse: function(t, e) {
    if (e.length === 0)
      return [];
    var A = e[0];
    return A.type === 20 && A.value === "none" ? [] : e;
  }
}, Tm = {
  name: "counter-increment",
  initialValue: "none",
  prefix: !0,
  type: 1,
  parse: function(t, e) {
    if (e.length === 0)
      return null;
    var A = e[0];
    if (A.type === 20 && A.value === "none")
      return null;
    for (var r = [], n = e.filter(hh), s = 0; s < n.length; s++) {
      var a = n[s], o = n[s + 1];
      if (a.type === 20) {
        var c = o && wi(o) ? o.number : 1;
        r.push({ counter: a.value, increment: c });
      }
    }
    return r;
  }
}, Nm = {
  name: "counter-reset",
  initialValue: "none",
  prefix: !0,
  type: 1,
  parse: function(t, e) {
    if (e.length === 0)
      return [];
    for (var A = [], r = e.filter(hh), n = 0; n < r.length; n++) {
      var s = r[n], a = r[n + 1];
      if (st(s) && s.value !== "none") {
        var o = a && wi(a) ? a.number : 0;
        A.push({ counter: s.value, reset: o });
      }
    }
    return A;
  }
}, _m = {
  name: "duration",
  initialValue: "0s",
  prefix: !1,
  type: 1,
  parse: function(t, e) {
    return e.filter(va).map(function(A) {
      return Sh.parse(t, A);
    });
  }
}, Mm = {
  name: "quotes",
  initialValue: "none",
  prefix: !0,
  type: 1,
  parse: function(t, e) {
    if (e.length === 0)
      return null;
    var A = e[0];
    if (A.type === 20 && A.value === "none")
      return null;
    var r = [], n = e.filter(c5);
    if (n.length % 2 !== 0)
      return null;
    for (var s = 0; s < n.length; s += 2) {
      var a = n[s].value, o = n[s + 1].value;
      r.push({ open: a, close: o });
    }
    return r;
  }
}, Zf = function(t, e, A) {
  if (!t)
    return "";
  var r = t[Math.min(e, t.length - 1)];
  return r ? A ? r.open : r.close : "";
}, Pm = {
  name: "box-shadow",
  initialValue: "none",
  type: 1,
  prefix: !1,
  parse: function(t, e) {
    return e.length === 1 && lu(e[0], "none") ? [] : dn(e).map(function(A) {
      for (var r = {
        color: 255,
        offsetX: Wt,
        offsetY: Wt,
        blur: Wt,
        spread: Wt,
        inset: !1
      }, n = 0, s = 0; s < A.length; s++) {
        var a = A[s];
        lu(a, "inset") ? r.inset = !0 : ss(a) ? (n === 0 ? r.offsetX = a : n === 1 ? r.offsetY = a : n === 2 ? r.blur = a : r.spread = a, n++) : r.color = es.parse(t, a);
      }
      return r;
    });
  }
}, Om = {
  name: "paint-order",
  initialValue: "normal",
  prefix: !1,
  type: 1,
  parse: function(t, e) {
    var A = [
      0,
      1,
      2
      /* MARKERS */
    ], r = [];
    return e.filter(st).forEach(function(n) {
      switch (n.value) {
        case "stroke":
          r.push(
            1
            /* STROKE */
          );
          break;
        case "fill":
          r.push(
            0
            /* FILL */
          );
          break;
        case "markers":
          r.push(
            2
            /* MARKERS */
          );
          break;
      }
    }), A.forEach(function(n) {
      r.indexOf(n) === -1 && r.push(n);
    }), r;
  }
}, Rm = {
  name: "-webkit-text-stroke-color",
  initialValue: "currentcolor",
  prefix: !1,
  type: 3,
  format: "color"
}, Km = {
  name: "-webkit-text-stroke-width",
  initialValue: "0",
  type: 0,
  prefix: !1,
  parse: function(t, e) {
    return va(e) ? e.number : 0;
  }
}, Vm = (
  /** @class */
  function() {
    function t(e, A) {
      var r, n;
      this.animationDuration = fe(e, _m, A.animationDuration), this.backgroundClip = fe(e, d5, A.backgroundClip), this.backgroundColor = fe(e, h5, A.backgroundColor), this.backgroundImage = fe(e, F5, A.backgroundImage), this.backgroundOrigin = fe(e, Q5, A.backgroundOrigin), this.backgroundPosition = fe(e, U5, A.backgroundPosition), this.backgroundRepeat = fe(e, L5, A.backgroundRepeat), this.backgroundSize = fe(e, x5, A.backgroundSize), this.borderTopColor = fe(e, S5, A.borderTopColor), this.borderRightColor = fe(e, D5, A.borderRightColor), this.borderBottomColor = fe(e, k5, A.borderBottomColor), this.borderLeftColor = fe(e, H5, A.borderLeftColor), this.borderTopLeftRadius = fe(e, T5, A.borderTopLeftRadius), this.borderTopRightRadius = fe(e, N5, A.borderTopRightRadius), this.borderBottomRightRadius = fe(e, _5, A.borderBottomRightRadius), this.borderBottomLeftRadius = fe(e, M5, A.borderBottomLeftRadius), this.borderTopStyle = fe(e, P5, A.borderTopStyle), this.borderRightStyle = fe(e, O5, A.borderRightStyle), this.borderBottomStyle = fe(e, R5, A.borderBottomStyle), this.borderLeftStyle = fe(e, K5, A.borderLeftStyle), this.borderTopWidth = fe(e, V5, A.borderTopWidth), this.borderRightWidth = fe(e, G5, A.borderRightWidth), this.borderBottomWidth = fe(e, j5, A.borderBottomWidth), this.borderLeftWidth = fe(e, q5, A.borderLeftWidth), this.boxShadow = fe(e, Pm, A.boxShadow), this.color = fe(e, W5, A.color), this.direction = fe(e, X5, A.direction), this.display = fe(e, z5, A.display), this.float = fe(e, J5, A.cssFloat), this.fontFamily = fe(e, xm, A.fontFamily), this.fontSize = fe(e, Im, A.fontSize), this.fontStyle = fe(e, km, A.fontStyle), this.fontVariant = fe(e, Dm, A.fontVariant), this.fontWeight = fe(e, Sm, A.fontWeight), this.letterSpacing = fe(e, $5, A.letterSpacing), this.lineBreak = fe(e, Z5, A.lineBreak), this.lineHeight = fe(e, Am, A.lineHeight), this.listStyleImage = fe(e, em, A.listStyleImage), this.listStylePosition = fe(e, tm, A.listStylePosition), this.listStyleType = fe(e, cu, A.listStyleType), this.marginTop = fe(e, rm, A.marginTop), this.marginRight = fe(e, nm, A.marginRight), this.marginBottom = fe(e, sm, A.marginBottom), this.marginLeft = fe(e, im, A.marginLeft), this.opacity = fe(e, Um, A.opacity);
      var s = fe(e, am, A.overflow);
      this.overflowX = s[0], this.overflowY = s[s.length > 1 ? 1 : 0], this.overflowWrap = fe(e, om, A.overflowWrap), this.paddingTop = fe(e, lm, A.paddingTop), this.paddingRight = fe(e, cm, A.paddingRight), this.paddingBottom = fe(e, um, A.paddingBottom), this.paddingLeft = fe(e, fm, A.paddingLeft), this.paintOrder = fe(e, Om, A.paintOrder), this.position = fe(e, hm, A.position), this.textAlign = fe(e, dm, A.textAlign), this.textDecorationColor = fe(e, Lm, (r = A.textDecorationColor) !== null && r !== void 0 ? r : A.color), this.textDecorationLine = fe(e, Em, (n = A.textDecorationLine) !== null && n !== void 0 ? n : A.textDecoration), this.textShadow = fe(e, gm, A.textShadow), this.textTransform = fe(e, pm, A.textTransform), this.transform = fe(e, Bm, A.transform), this.transformOrigin = fe(e, Cm, A.transformOrigin), this.visibility = fe(e, bm, A.visibility), this.webkitTextStrokeColor = fe(e, Rm, A.webkitTextStrokeColor), this.webkitTextStrokeWidth = fe(e, Km, A.webkitTextStrokeWidth), this.wordBreak = fe(e, Fm, A.wordBreak), this.zIndex = fe(e, Qm, A.zIndex);
    }
    return t.prototype.isVisible = function() {
      return this.display > 0 && this.opacity > 0 && this.visibility === 0;
    }, t.prototype.isTransparent = function() {
      return ts(this.backgroundColor);
    }, t.prototype.isTransformed = function() {
      return this.transform !== null;
    }, t.prototype.isPositioned = function() {
      return this.position !== 0;
    }, t.prototype.isPositionedWithZIndex = function() {
      return this.isPositioned() && !this.zIndex.auto;
    }, t.prototype.isFloating = function() {
      return this.float !== 0;
    }, t.prototype.isInlineLevel = function() {
      return Nt(
        this.display,
        4
        /* INLINE */
      ) || Nt(
        this.display,
        33554432
        /* INLINE_BLOCK */
      ) || Nt(
        this.display,
        268435456
        /* INLINE_FLEX */
      ) || Nt(
        this.display,
        536870912
        /* INLINE_GRID */
      ) || Nt(
        this.display,
        67108864
        /* INLINE_LIST_ITEM */
      ) || Nt(
        this.display,
        134217728
        /* INLINE_TABLE */
      );
    }, t;
  }()
), Gm = (
  /** @class */
  /* @__PURE__ */ function() {
    function t(e, A) {
      this.content = fe(e, Hm, A.content), this.quotes = fe(e, Mm, A.quotes);
    }
    return t;
  }()
), Ad = (
  /** @class */
  /* @__PURE__ */ function() {
    function t(e, A) {
      this.counterIncrement = fe(e, Tm, A.counterIncrement), this.counterReset = fe(e, Nm, A.counterReset);
    }
    return t;
  }()
), fe = function(t, e, A) {
  var r = new fh(), n = A !== null && typeof A < "u" ? A.toString() : e.initialValue;
  r.write(n);
  var s = new dh(r.read());
  switch (e.type) {
    case 2:
      var a = s.parseComponentValue();
      return e.parse(t, st(a) ? a.value : e.initialValue);
    case 0:
      return e.parse(t, s.parseComponentValue());
    case 1:
      return e.parse(t, s.parseComponentValues());
    case 4:
      return s.parseComponentValue();
    case 3:
      switch (e.format) {
        case "angle":
          return fl.parse(t, s.parseComponentValue());
        case "color":
          return es.parse(t, s.parseComponentValue());
        case "image":
          return Qu.parse(t, s.parseComponentValue());
        case "length":
          var o = s.parseComponentValue();
          return ss(o) ? o : Wt;
        case "length-percentage":
          var c = s.parseComponentValue();
          return kt(c) ? c : Wt;
        case "time":
          return Sh.parse(t, s.parseComponentValue());
      }
      break;
  }
}, jm = "data-html2canvas-debug", qm = function(t) {
  var e = t.getAttribute(jm);
  switch (e) {
    case "all":
      return 1;
    case "clone":
      return 2;
    case "parse":
      return 3;
    case "render":
      return 4;
    default:
      return 0;
  }
}, uu = function(t, e) {
  var A = qm(t);
  return A === 1 || e === A;
}, hn = (
  /** @class */
  /* @__PURE__ */ function() {
    function t(e, A) {
      if (this.context = e, this.textNodes = [], this.elements = [], this.flags = 0, uu(
        A,
        3
        /* PARSE */
      ))
        debugger;
      this.styles = new Vm(e, window.getComputedStyle(A, null)), hu(A) && (this.styles.animationDuration.some(function(r) {
        return r > 0;
      }) && (A.style.animationDuration = "0s"), this.styles.transform !== null && (A.style.transform = "none")), this.bounds = cl(this.context, A), uu(
        A,
        4
        /* RENDER */
      ) && (this.flags |= 16);
    }
    return t;
  }()
), Wm = "AAAAAAAAAAAAEA4AGBkAAFAaAAACAAAAAAAIABAAGAAwADgACAAQAAgAEAAIABAACAAQAAgAEAAIABAACAAQAAgAEAAIABAAQABIAEQATAAIABAACAAQAAgAEAAIABAAVABcAAgAEAAIABAACAAQAGAAaABwAHgAgACIAI4AlgAIABAAmwCjAKgAsAC2AL4AvQDFAMoA0gBPAVYBWgEIAAgACACMANoAYgFkAWwBdAF8AX0BhQGNAZUBlgGeAaMBlQGWAasBswF8AbsBwwF0AcsBYwHTAQgA2wG/AOMBdAF8AekB8QF0AfkB+wHiAHQBfAEIAAMC5gQIAAsCEgIIAAgAFgIeAggAIgIpAggAMQI5AkACygEIAAgASAJQAlgCYAIIAAgACAAKBQoFCgUTBRMFGQUrBSsFCAAIAAgACAAIAAgACAAIAAgACABdAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACABoAmgCrwGvAQgAbgJ2AggAHgEIAAgACADnAXsCCAAIAAgAgwIIAAgACAAIAAgACACKAggAkQKZAggAPADJAAgAoQKkAqwCsgK6AsICCADJAggA0AIIAAgACAAIANYC3gIIAAgACAAIAAgACABAAOYCCAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAkASoB+QIEAAgACAA8AEMCCABCBQgACABJBVAFCAAIAAgACAAIAAgACAAIAAgACABTBVoFCAAIAFoFCABfBWUFCAAIAAgACAAIAAgAbQUIAAgACAAIAAgACABzBXsFfQWFBYoFigWKBZEFigWKBYoFmAWfBaYFrgWxBbkFCAAIAAgACAAIAAgACAAIAAgACAAIAMEFCAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAMgFCADQBQgACAAIAAgACAAIAAgACAAIAAgACAAIAO4CCAAIAAgAiQAIAAgACABAAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAD0AggACAD8AggACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIANYFCAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAMDvwAIAAgAJAIIAAgACAAIAAgACAAIAAgACwMTAwgACAB9BOsEGwMjAwgAKwMyAwsFYgE3A/MEPwMIAEUDTQNRAwgAWQOsAGEDCAAIAAgACAAIAAgACABpAzQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFIQUoBSwFCAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACABtAwgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACABMAEwACAAIAAgACAAIABgACAAIAAgACAC/AAgACAAyAQgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACACAAIAAwAAgACAAIAAgACAAIAAgACAAIAAAARABIAAgACAAIABQASAAIAAgAIABwAEAAjgCIABsAqAC2AL0AigDQAtwC+IJIQqVAZUBWQqVAZUBlQGVAZUBlQGrC5UBlQGVAZUBlQGVAZUBlQGVAXsKlQGVAbAK6wsrDGUMpQzlDJUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAfAKAAuZA64AtwCJALoC6ADwAAgAuACgA/oEpgO6AqsD+AAIAAgAswMIAAgACAAIAIkAuwP5AfsBwwPLAwgACAAIAAgACADRA9kDCAAIAOED6QMIAAgACAAIAAgACADuA/YDCAAIAP4DyQAIAAgABgQIAAgAXQAOBAgACAAIAAgACAAIABMECAAIAAgACAAIAAgACAD8AAQBCAAIAAgAGgQiBCoECAExBAgAEAEIAAgACAAIAAgACAAIAAgACAAIAAgACAA4BAgACABABEYECAAIAAgATAQYAQgAVAQIAAgACAAIAAgACAAIAAgACAAIAFoECAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgAOQEIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAB+BAcACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAEABhgSMBAgACAAIAAgAlAQIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAwAEAAQABAADAAMAAwADAAQABAAEAAQABAAEAAQABHATAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgAdQMIAAgACAAIAAgACAAIAMkACAAIAAgAfQMIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACACFA4kDCAAIAAgACAAIAOcBCAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAIcDCAAIAAgACAAIAAgACAAIAAgACAAIAJEDCAAIAAgACADFAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACABgBAgAZgQIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgAbAQCBXIECAAIAHkECAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACABAAJwEQACjBKoEsgQIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAC6BMIECAAIAAgACAAIAAgACABmBAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgAxwQIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAGYECAAIAAgAzgQIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgAigWKBYoFigWKBYoFigWKBd0FXwUIAOIF6gXxBYoF3gT5BQAGCAaKBYoFigWKBYoFigWKBYoFigWKBYoFigXWBIoFigWKBYoFigWKBYoFigWKBYsFEAaKBYoFigWKBYoFigWKBRQGCACKBYoFigWKBQgACAAIANEECAAIABgGigUgBggAJgYIAC4GMwaKBYoF0wQ3Bj4GigWKBYoFigWKBYoFigWKBYoFigWKBYoFigUIAAgACAAIAAgACAAIAAgAigWKBYoFigWKBYoFigWKBYoFigWKBYoFigWKBYoFigWKBYoFigWKBYoFigWKBYoFigWKBYoFigWKBYoFigWLBf///////wQABAAEAAQABAAEAAQABAAEAAQAAwAEAAQAAgAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAQADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAAAUAAAAFAAUAAAAFAAUAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAEAAQABAAEAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAFAAUABQAFAAUABQAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAFAAUAAQAAAAUABQAFAAUABQAFAAAAAAAFAAUAAAAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAFAAUABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAFAAUAAQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABwAFAAUABQAFAAAABwAHAAcAAAAHAAcABwAFAAEAAAAAAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAcABwAFAAUABQAFAAcABwAFAAUAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAAAAQABAAAAAAAAAAAAAAAFAAUABQAFAAAABwAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAHAAcABwAHAAcAAAAHAAcAAAAAAAUABQAHAAUAAQAHAAEABwAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUABwABAAUABQAFAAUAAAAAAAAAAAAAAAEAAQABAAEAAQABAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABwAFAAUAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUAAQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQABQANAAQABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQABAAEAAQABAAEAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAEAAQABAAEAAQABAAEAAQABAAEAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAAAAAAAAAAAAABQAHAAUABQAFAAAAAAAAAAcABQAFAAUABQAFAAQABAAEAAQABAAEAAQABAAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUAAAAFAAUABQAFAAUAAAAFAAUABQAAAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAAAAAAAAAAAAUABQAFAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAHAAUAAAAHAAcABwAFAAUABQAFAAUABQAFAAUABwAHAAcABwAFAAcABwAAAAUABQAFAAUABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABwAHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAUABwAHAAUABQAFAAUAAAAAAAcABwAAAAAABwAHAAUAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAABQAFAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAABwAHAAcABQAFAAAAAAAAAAAABQAFAAAAAAAFAAUABQAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAFAAUABQAFAAUAAAAFAAUABwAAAAcABwAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAFAAUABwAFAAUABQAFAAAAAAAHAAcAAAAAAAcABwAFAAAAAAAAAAAAAAAAAAAABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAcABwAAAAAAAAAHAAcABwAAAAcABwAHAAUAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAABQAHAAcABwAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABwAHAAcABwAAAAUABQAFAAAABQAFAAUABQAAAAAAAAAAAAAAAAAAAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAcABQAHAAcABQAHAAcAAAAFAAcABwAAAAcABwAFAAUAAAAAAAAAAAAAAAAAAAAFAAUAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAcABwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAAAAUABwAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAFAAcABwAFAAUABQAAAAUAAAAHAAcABwAHAAcABwAHAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAHAAUABQAFAAUABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAABwAFAAUABQAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAUAAAAFAAAAAAAAAAAABwAHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABwAFAAUABQAFAAUAAAAFAAUAAAAAAAAAAAAAAAUABQAFAAUABQAFAAUABQAFAAUABQAAAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABwAFAAUABQAFAAUABQAAAAUABQAHAAcABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAcABQAFAAAAAAAAAAAABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAcABQAFAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAHAAUABQAFAAUABQAFAAUABwAHAAcABwAHAAcABwAHAAUABwAHAAUABQAFAAUABQAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABwAHAAcABwAFAAUABwAHAAcAAAAAAAAAAAAHAAcABQAHAAcABwAHAAcABwAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAcABwAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcABQAHAAUABQAFAAUABQAFAAUAAAAFAAAABQAAAAAABQAFAAUABQAFAAUABQAFAAcABwAHAAcABwAHAAUABQAFAAUABQAFAAUABQAFAAUAAAAAAAUABQAFAAUABQAHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAFAAUABwAFAAcABwAHAAcABwAFAAcABwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAUABQAFAAUABwAHAAUABQAHAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAcABQAFAAcABwAHAAUABwAFAAUABQAHAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAHAAcABwAHAAcABwAHAAUABQAFAAUABQAFAAUABQAHAAcABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUAAAAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAcABQAFAAUABQAFAAUABQAAAAAAAAAAAAUAAAAAAAAAAAAAAAAABQAAAAAABwAFAAUAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAAABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUAAAAFAAUABQAFAAUABQAFAAUABQAFAAAAAAAAAAAABQAAAAAAAAAFAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAHAAUABQAHAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcABwAHAAcABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAFAAUABQAFAAUABQAHAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAcABwAFAAUABQAFAAcABwAFAAUABwAHAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAFAAcABwAFAAUABwAHAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAFAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAFAAUABQAAAAAABQAFAAAAAAAAAAAAAAAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcABQAFAAcABwAAAAAAAAAAAAAABwAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcABwAFAAcABwAFAAcABwAAAAcABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAAAAAAAAAAAAAAAAAFAAUABQAAAAUABQAAAAAAAAAAAAAABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAAAAAAAAAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcABQAHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABwAFAAUABQAFAAUABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAHAAcABQAFAAUABQAFAAUABQAFAAUABwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAcABwAFAAUABQAHAAcABQAHAAUABQAAAAAAAAAAAAAAAAAFAAAABwAHAAcABQAFAAUABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABwAHAAcABwAAAAAABwAHAAAAAAAHAAcABwAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAHAAAAAAAFAAUABQAFAAUABQAFAAAAAAAAAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAcABwAFAAUABQAFAAUABQAFAAUABwAHAAUABQAFAAcABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAHAAcABQAFAAUABQAFAAUABwAFAAcABwAFAAcABQAFAAcABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAHAAcABQAFAAUABQAAAAAABwAHAAcABwAFAAUABwAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcABwAHAAUABQAFAAUABQAFAAUABQAHAAcABQAHAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABwAFAAcABwAFAAUABQAFAAUABQAHAAUAAAAAAAAAAAAAAAAAAAAAAAcABwAFAAUABQAFAAcABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAcABwAFAAUABQAFAAUABQAFAAUABQAHAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAcABwAFAAUABQAFAAAAAAAFAAUABwAHAAcABwAFAAAAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUABwAHAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcABQAFAAUABQAFAAUABQAAAAUABQAFAAUABQAFAAcABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAAAHAAUABQAFAAUABQAFAAUABwAFAAUABwAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUAAAAAAAAABQAAAAUABQAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAcABwAHAAcAAAAFAAUAAAAHAAcABQAHAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABwAHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAAAAAAAAAAAAAAAAAAABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcABwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAAAAUABQAFAAAAAAAFAAUABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAAAAAAAAAAABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAAAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUABQAAAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAAAAABQAFAAUABQAFAAUABQAAAAUABQAAAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAFAAUABQAFAAUADgAOAA4ADgAOAA4ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcABwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAAAAAAAAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAMAAwADAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAAAAAAAAAAAAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAAAAAAAAAAAAsADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwACwAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAAAAAADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAA4ADgAOAA4ADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4ADgAAAAAAAAAAAAAAAAAAAAAADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAOAA4ADgAOAA4ADgAOAA4ADgAOAAAAAAAAAAAADgAOAA4AAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAOAA4ADgAAAA4ADgAOAA4ADgAOAAAADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4AAAAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4AAAAAAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAAAA4AAAAOAAAAAAAAAAAAAAAAAA4AAAAAAAAAAAAAAAAADgAAAAAAAAAAAAAAAAAAAAAAAAAAAA4ADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAAAAAADgAAAAAAAAAAAA4AAAAOAAAAAAAAAAAADgAOAA4AAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAA4ADgAOAA4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAA4ADgAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAA4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4ADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAAAAAAAAAAAA4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAAAADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAA4ADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4ADgAOAA4ADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4ADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAAAAAADgAOAA4ADgAOAA4ADgAOAA4ADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAAAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4AAAAAAA4ADgAOAA4ADgAOAA4ADgAOAAAADgAOAA4ADgAAAAAAAAAAAAAAAAAAAAAAAAAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4AAAAAAAAAAAAAAAAADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAA4ADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAOAA4ADgAOAA4ADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAOAA4ADgAOAA4AAAAAAAAAAAAAAAAAAAAAAA4ADgAOAA4ADgAOAA4ADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4AAAAOAA4ADgAOAA4ADgAAAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4AAAAAAAAAAAA=", ed = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/", ia = typeof Uint8Array > "u" ? [] : new Uint8Array(256);
for (var So = 0; So < ed.length; So++)
  ia[ed.charCodeAt(So)] = So;
var Xm = function(t) {
  var e = t.length * 0.75, A = t.length, r, n = 0, s, a, o, c;
  t[t.length - 1] === "=" && (e--, t[t.length - 2] === "=" && e--);
  var d = typeof ArrayBuffer < "u" && typeof Uint8Array < "u" && typeof Uint8Array.prototype.slice < "u" ? new ArrayBuffer(e) : new Array(e), h = Array.isArray(d) ? d : new Uint8Array(d);
  for (r = 0; r < A; r += 4)
    s = ia[t.charCodeAt(r)], a = ia[t.charCodeAt(r + 1)], o = ia[t.charCodeAt(r + 2)], c = ia[t.charCodeAt(r + 3)], h[n++] = s << 2 | a >> 4, h[n++] = (a & 15) << 4 | o >> 2, h[n++] = (o & 3) << 6 | c & 63;
  return d;
}, zm = function(t) {
  for (var e = t.length, A = [], r = 0; r < e; r += 2)
    A.push(t[r + 1] << 8 | t[r]);
  return A;
}, Ym = function(t) {
  for (var e = t.length, A = [], r = 0; r < e; r += 4)
    A.push(t[r + 3] << 24 | t[r + 2] << 16 | t[r + 1] << 8 | t[r]);
  return A;
}, Qs = 5, Uu = 11, bc = 2, Jm = Uu - Qs, Dh = 65536 >> Qs, $m = 1 << Qs, Fc = $m - 1, Zm = 1024 >> Qs, Ay = Dh + Zm, ey = Ay, ty = 32, ry = ey + ty, ny = 65536 >> Uu, sy = 1 << Jm, iy = sy - 1, td = function(t, e, A) {
  return t.slice ? t.slice(e, A) : new Uint16Array(Array.prototype.slice.call(t, e, A));
}, ay = function(t, e, A) {
  return t.slice ? t.slice(e, A) : new Uint32Array(Array.prototype.slice.call(t, e, A));
}, oy = function(t, e) {
  var A = Xm(t), r = Array.isArray(A) ? Ym(A) : new Uint32Array(A), n = Array.isArray(A) ? zm(A) : new Uint16Array(A), s = 24, a = td(n, s / 2, r[4] / 2), o = r[5] === 2 ? td(n, (s + r[4]) / 2) : ay(r, Math.ceil((s + r[4]) / 4));
  return new ly(r[0], r[1], r[2], r[3], a, o);
}, ly = (
  /** @class */
  function() {
    function t(e, A, r, n, s, a) {
      this.initialValue = e, this.errorValue = A, this.highStart = r, this.highValueIndex = n, this.index = s, this.data = a;
    }
    return t.prototype.get = function(e) {
      var A;
      if (e >= 0) {
        if (e < 55296 || e > 56319 && e <= 65535)
          return A = this.index[e >> Qs], A = (A << bc) + (e & Fc), this.data[A];
        if (e <= 65535)
          return A = this.index[Dh + (e - 55296 >> Qs)], A = (A << bc) + (e & Fc), this.data[A];
        if (e < this.highStart)
          return A = ry - ny + (e >> Uu), A = this.index[A], A += e >> Qs & iy, A = this.index[A], A = (A << bc) + (e & Fc), this.data[A];
        if (e <= 1114111)
          return this.data[this.highValueIndex];
      }
      return this.errorValue;
    }, t;
  }()
), rd = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/", cy = typeof Uint8Array > "u" ? [] : new Uint8Array(256);
for (var Do = 0; Do < rd.length; Do++)
  cy[rd.charCodeAt(Do)] = Do;
var uy = 1, Qc = 2, Uc = 3, nd = 4, sd = 5, fy = 7, id = 8, Lc = 9, Ec = 10, ad = 11, od = 12, ld = 13, cd = 14, xc = 15, dy = function(t) {
  for (var e = [], A = 0, r = t.length; A < r; ) {
    var n = t.charCodeAt(A++);
    if (n >= 55296 && n <= 56319 && A < r) {
      var s = t.charCodeAt(A++);
      (s & 64512) === 56320 ? e.push(((n & 1023) << 10) + (s & 1023) + 65536) : (e.push(n), A--);
    } else
      e.push(n);
  }
  return e;
}, hy = function() {
  for (var t = [], e = 0; e < arguments.length; e++)
    t[e] = arguments[e];
  if (String.fromCodePoint)
    return String.fromCodePoint.apply(String, t);
  var A = t.length;
  if (!A)
    return "";
  for (var r = [], n = -1, s = ""; ++n < A; ) {
    var a = t[n];
    a <= 65535 ? r.push(a) : (a -= 65536, r.push((a >> 10) + 55296, a % 1024 + 56320)), (n + 1 === A || r.length > 16384) && (s += String.fromCharCode.apply(String, r), r.length = 0);
  }
  return s;
}, gy = oy(Wm), Or = "×", Ic = "÷", py = function(t) {
  return gy.get(t);
}, By = function(t, e, A) {
  var r = A - 2, n = e[r], s = e[A - 1], a = e[A];
  if (s === Qc && a === Uc)
    return Or;
  if (s === Qc || s === Uc || s === nd || a === Qc || a === Uc || a === nd)
    return Ic;
  if (s === id && [id, Lc, ad, od].indexOf(a) !== -1 || (s === ad || s === Lc) && (a === Lc || a === Ec) || (s === od || s === Ec) && a === Ec || a === ld || a === sd || a === fy || s === uy)
    return Or;
  if (s === ld && a === cd) {
    for (; n === sd; )
      n = e[--r];
    if (n === cd)
      return Or;
  }
  if (s === xc && a === xc) {
    for (var o = 0; n === xc; )
      o++, n = e[--r];
    if (o % 2 === 0)
      return Or;
  }
  return Ic;
}, wy = function(t) {
  var e = dy(t), A = e.length, r = 0, n = 0, s = e.map(py);
  return {
    next: function() {
      if (r >= A)
        return { done: !0, value: null };
      for (var a = Or; r < A && (a = By(e, s, ++r)) === Or; )
        ;
      if (a !== Or || r === A) {
        var o = hy.apply(null, e.slice(n, r));
        return n = r, { value: o, done: !1 };
      }
      return { done: !0, value: null };
    }
  };
}, vy = function(t) {
  for (var e = wy(t), A = [], r; !(r = e.next()).done; )
    r.value && A.push(r.value.slice());
  return A;
}, my = function(t) {
  var e = 123;
  if (t.createRange) {
    var A = t.createRange();
    if (A.getBoundingClientRect) {
      var r = t.createElement("boundtest");
      r.style.height = e + "px", r.style.display = "block", t.body.appendChild(r), A.selectNode(r);
      var n = A.getBoundingClientRect(), s = Math.round(n.height);
      if (t.body.removeChild(r), s === e)
        return !0;
    }
  }
  return !1;
}, yy = function(t) {
  var e = t.createElement("boundtest");
  e.style.width = "50px", e.style.display = "block", e.style.fontSize = "12px", e.style.letterSpacing = "0px", e.style.wordSpacing = "0px", t.body.appendChild(e);
  var A = t.createRange();
  e.innerHTML = typeof "".repeat == "function" ? "&#128104;".repeat(10) : "";
  var r = e.firstChild, n = ul(r.data).map(function(c) {
    return Qt(c);
  }), s = 0, a = {}, o = n.every(function(c, d) {
    A.setStart(r, s), A.setEnd(r, s + c.length);
    var h = A.getBoundingClientRect();
    s += c.length;
    var g = h.x > a.x || h.y > a.y;
    return a = h, d === 0 ? !0 : g;
  });
  return t.body.removeChild(e), o;
}, Cy = function() {
  return typeof new Image().crossOrigin < "u";
}, by = function() {
  return typeof new XMLHttpRequest().responseType == "string";
}, Fy = function(t) {
  var e = new Image(), A = t.createElement("canvas"), r = A.getContext("2d");
  if (!r)
    return !1;
  e.src = "data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg'></svg>";
  try {
    r.drawImage(e, 0, 0), A.toDataURL();
  } catch {
    return !1;
  }
  return !0;
}, ud = function(t) {
  return t[0] === 0 && t[1] === 255 && t[2] === 0 && t[3] === 255;
}, Qy = function(t) {
  var e = t.createElement("canvas"), A = 100;
  e.width = A, e.height = A;
  var r = e.getContext("2d");
  if (!r)
    return Promise.reject(!1);
  r.fillStyle = "rgb(0, 255, 0)", r.fillRect(0, 0, A, A);
  var n = new Image(), s = e.toDataURL();
  n.src = s;
  var a = fu(A, A, 0, 0, n);
  return r.fillStyle = "red", r.fillRect(0, 0, A, A), fd(a).then(function(o) {
    r.drawImage(o, 0, 0);
    var c = r.getImageData(0, 0, A, A).data;
    r.fillStyle = "red", r.fillRect(0, 0, A, A);
    var d = t.createElement("div");
    return d.style.backgroundImage = "url(" + s + ")", d.style.height = A + "px", ud(c) ? fd(fu(A, A, 0, 0, d)) : Promise.reject(!1);
  }).then(function(o) {
    return r.drawImage(o, 0, 0), ud(r.getImageData(0, 0, A, A).data);
  }).catch(function() {
    return !1;
  });
}, fu = function(t, e, A, r, n) {
  var s = "http://www.w3.org/2000/svg", a = document.createElementNS(s, "svg"), o = document.createElementNS(s, "foreignObject");
  return a.setAttributeNS(null, "width", t.toString()), a.setAttributeNS(null, "height", e.toString()), o.setAttributeNS(null, "width", "100%"), o.setAttributeNS(null, "height", "100%"), o.setAttributeNS(null, "x", A.toString()), o.setAttributeNS(null, "y", r.toString()), o.setAttributeNS(null, "externalResourcesRequired", "true"), a.appendChild(o), o.appendChild(n), a;
}, fd = function(t) {
  return new Promise(function(e, A) {
    var r = new Image();
    r.onload = function() {
      return e(r);
    }, r.onerror = A, r.src = "data:image/svg+xml;charset=utf-8," + encodeURIComponent(new XMLSerializer().serializeToString(t));
  });
}, qt = {
  get SUPPORT_RANGE_BOUNDS() {
    var t = my(document);
    return Object.defineProperty(qt, "SUPPORT_RANGE_BOUNDS", { value: t }), t;
  },
  get SUPPORT_WORD_BREAKING() {
    var t = qt.SUPPORT_RANGE_BOUNDS && yy(document);
    return Object.defineProperty(qt, "SUPPORT_WORD_BREAKING", { value: t }), t;
  },
  get SUPPORT_SVG_DRAWING() {
    var t = Fy(document);
    return Object.defineProperty(qt, "SUPPORT_SVG_DRAWING", { value: t }), t;
  },
  get SUPPORT_FOREIGNOBJECT_DRAWING() {
    var t = typeof Array.from == "function" && typeof window.fetch == "function" ? Qy(document) : Promise.resolve(!1);
    return Object.defineProperty(qt, "SUPPORT_FOREIGNOBJECT_DRAWING", { value: t }), t;
  },
  get SUPPORT_CORS_IMAGES() {
    var t = Cy();
    return Object.defineProperty(qt, "SUPPORT_CORS_IMAGES", { value: t }), t;
  },
  get SUPPORT_RESPONSE_TYPE() {
    var t = by();
    return Object.defineProperty(qt, "SUPPORT_RESPONSE_TYPE", { value: t }), t;
  },
  get SUPPORT_CORS_XHR() {
    var t = "withCredentials" in new XMLHttpRequest();
    return Object.defineProperty(qt, "SUPPORT_CORS_XHR", { value: t }), t;
  },
  get SUPPORT_NATIVE_TEXT_SEGMENTATION() {
    var t = !!(typeof Intl < "u" && Intl.Segmenter);
    return Object.defineProperty(qt, "SUPPORT_NATIVE_TEXT_SEGMENTATION", { value: t }), t;
  }
}, fa = (
  /** @class */
  /* @__PURE__ */ function() {
    function t(e, A) {
      this.text = e, this.bounds = A;
    }
    return t;
  }()
), Uy = function(t, e, A, r) {
  var n = xy(e, A), s = [], a = 0;
  return n.forEach(function(o) {
    if (A.textDecorationLine.length || o.trim().length > 0)
      if (qt.SUPPORT_RANGE_BOUNDS) {
        var c = dd(r, a, o.length).getClientRects();
        if (c.length > 1) {
          var d = Lu(o), h = 0;
          d.forEach(function(w) {
            s.push(new fa(w, xn.fromDOMRectList(t, dd(r, h + a, w.length).getClientRects()))), h += w.length;
          });
        } else
          s.push(new fa(o, xn.fromDOMRectList(t, c)));
      } else {
        var g = r.splitText(o.length);
        s.push(new fa(o, Ly(t, r))), r = g;
      }
    else qt.SUPPORT_RANGE_BOUNDS || (r = r.splitText(o.length));
    a += o.length;
  }), s;
}, Ly = function(t, e) {
  var A = e.ownerDocument;
  if (A) {
    var r = A.createElement("html2canvaswrapper");
    r.appendChild(e.cloneNode(!0));
    var n = e.parentNode;
    if (n) {
      n.replaceChild(r, e);
      var s = cl(t, r);
      return r.firstChild && n.replaceChild(r.firstChild, r), s;
    }
  }
  return xn.EMPTY;
}, dd = function(t, e, A) {
  var r = t.ownerDocument;
  if (!r)
    throw new Error("Node has no owner document");
  var n = r.createRange();
  return n.setStart(t, e), n.setEnd(t, e + A), n;
}, Lu = function(t) {
  if (qt.SUPPORT_NATIVE_TEXT_SEGMENTATION) {
    var e = new Intl.Segmenter(void 0, { granularity: "grapheme" });
    return Array.from(e.segment(t)).map(function(A) {
      return A.segment;
    });
  }
  return vy(t);
}, Ey = function(t, e) {
  if (qt.SUPPORT_NATIVE_TEXT_SEGMENTATION) {
    var A = new Intl.Segmenter(void 0, {
      granularity: "word"
    });
    return Array.from(A.segment(t)).map(function(r) {
      return r.segment;
    });
  }
  return Sy(t, e);
}, xy = function(t, e) {
  return e.letterSpacing !== 0 ? Lu(t) : Ey(t, e);
}, Iy = [32, 160, 4961, 65792, 65793, 4153, 4241], Sy = function(t, e) {
  for (var A = nv(t, {
    lineBreak: e.lineBreak,
    wordBreak: e.overflowWrap === "break-word" ? "break-word" : e.wordBreak
  }), r = [], n, s = function() {
    if (n.value) {
      var a = n.value.slice(), o = ul(a), c = "";
      o.forEach(function(d) {
        Iy.indexOf(d) === -1 ? c += Qt(d) : (c.length && r.push(c), r.push(Qt(d)), c = "");
      }), c.length && r.push(c);
    }
  }; !(n = A.next()).done; )
    s();
  return r;
}, Dy = (
  /** @class */
  /* @__PURE__ */ function() {
    function t(e, A, r) {
      this.text = ky(A.data, r.textTransform), this.textBounds = Uy(e, this.text, r, A);
    }
    return t;
  }()
), ky = function(t, e) {
  switch (e) {
    case 1:
      return t.toLowerCase();
    case 3:
      return t.replace(Hy, Ty);
    case 2:
      return t.toUpperCase();
    default:
      return t;
  }
}, Hy = /(^|\s|:|-|\(|\))([a-z])/g, Ty = function(t, e, A) {
  return t.length > 0 ? e + A.toUpperCase() : t;
}, kh = (
  /** @class */
  function(t) {
    tn(e, t);
    function e(A, r) {
      var n = t.call(this, A, r) || this;
      return n.src = r.currentSrc || r.src, n.intrinsicWidth = r.naturalWidth, n.intrinsicHeight = r.naturalHeight, n.context.cache.addImage(n.src), n;
    }
    return e;
  }(hn)
), Hh = (
  /** @class */
  function(t) {
    tn(e, t);
    function e(A, r) {
      var n = t.call(this, A, r) || this;
      return n.canvas = r, n.intrinsicWidth = r.width, n.intrinsicHeight = r.height, n;
    }
    return e;
  }(hn)
), Th = (
  /** @class */
  function(t) {
    tn(e, t);
    function e(A, r) {
      var n = t.call(this, A, r) || this, s = new XMLSerializer(), a = cl(A, r);
      return r.setAttribute("width", a.width + "px"), r.setAttribute("height", a.height + "px"), n.svg = "data:image/svg+xml," + encodeURIComponent(s.serializeToString(r)), n.intrinsicWidth = r.width.baseVal.value, n.intrinsicHeight = r.height.baseVal.value, n.context.cache.addImage(n.svg), n;
    }
    return e;
  }(hn)
), Nh = (
  /** @class */
  function(t) {
    tn(e, t);
    function e(A, r) {
      var n = t.call(this, A, r) || this;
      return n.value = r.value, n;
    }
    return e;
  }(hn)
), du = (
  /** @class */
  function(t) {
    tn(e, t);
    function e(A, r) {
      var n = t.call(this, A, r) || this;
      return n.start = r.start, n.reversed = typeof r.reversed == "boolean" && r.reversed === !0, n;
    }
    return e;
  }(hn)
), Ny = [
  {
    type: 15,
    flags: 0,
    unit: "px",
    number: 3
  }
], _y = [
  {
    type: 16,
    flags: 0,
    number: 50
  }
], My = function(t) {
  return t.width > t.height ? new xn(t.left + (t.width - t.height) / 2, t.top, t.height, t.height) : t.width < t.height ? new xn(t.left, t.top + (t.height - t.width) / 2, t.width, t.width) : t;
}, Py = function(t) {
  var e = t.type === Oy ? new Array(t.value.length + 1).join("•") : t.value;
  return e.length === 0 ? t.placeholder || "" : e;
}, Zo = "checkbox", Al = "radio", Oy = "password", hd = 707406591, Eu = (
  /** @class */
  function(t) {
    tn(e, t);
    function e(A, r) {
      var n = t.call(this, A, r) || this;
      switch (n.type = r.type.toLowerCase(), n.checked = r.checked, n.value = Py(r), (n.type === Zo || n.type === Al) && (n.styles.backgroundColor = 3739148031, n.styles.borderTopColor = n.styles.borderRightColor = n.styles.borderBottomColor = n.styles.borderLeftColor = 2779096575, n.styles.borderTopWidth = n.styles.borderRightWidth = n.styles.borderBottomWidth = n.styles.borderLeftWidth = 1, n.styles.borderTopStyle = n.styles.borderRightStyle = n.styles.borderBottomStyle = n.styles.borderLeftStyle = 1, n.styles.backgroundClip = [
        0
        /* BORDER_BOX */
      ], n.styles.backgroundOrigin = [
        0
        /* BORDER_BOX */
      ], n.bounds = My(n.bounds)), n.type) {
        case Zo:
          n.styles.borderTopRightRadius = n.styles.borderTopLeftRadius = n.styles.borderBottomRightRadius = n.styles.borderBottomLeftRadius = Ny;
          break;
        case Al:
          n.styles.borderTopRightRadius = n.styles.borderTopLeftRadius = n.styles.borderBottomRightRadius = n.styles.borderBottomLeftRadius = _y;
          break;
      }
      return n;
    }
    return e;
  }(hn)
), _h = (
  /** @class */
  function(t) {
    tn(e, t);
    function e(A, r) {
      var n = t.call(this, A, r) || this, s = r.options[r.selectedIndex || 0];
      return n.value = s && s.text || "", n;
    }
    return e;
  }(hn)
), Mh = (
  /** @class */
  function(t) {
    tn(e, t);
    function e(A, r) {
      var n = t.call(this, A, r) || this;
      return n.value = r.value, n;
    }
    return e;
  }(hn)
), Ph = (
  /** @class */
  function(t) {
    tn(e, t);
    function e(A, r) {
      var n = t.call(this, A, r) || this;
      n.src = r.src, n.width = parseInt(r.width, 10) || 0, n.height = parseInt(r.height, 10) || 0, n.backgroundColor = n.styles.backgroundColor;
      try {
        if (r.contentWindow && r.contentWindow.document && r.contentWindow.document.documentElement) {
          n.tree = Rh(A, r.contentWindow.document.documentElement);
          var s = r.contentWindow.document.documentElement ? ca(A, getComputedStyle(r.contentWindow.document.documentElement).backgroundColor) : En.TRANSPARENT, a = r.contentWindow.document.body ? ca(A, getComputedStyle(r.contentWindow.document.body).backgroundColor) : En.TRANSPARENT;
          n.backgroundColor = ts(s) ? ts(a) ? n.styles.backgroundColor : a : s;
        }
      } catch {
      }
      return n;
    }
    return e;
  }(hn)
), Ry = ["OL", "UL", "MENU"], jo = function(t, e, A, r) {
  for (var n = e.firstChild, s = void 0; n; n = s)
    if (s = n.nextSibling, Kh(n) && n.data.trim().length > 0)
      A.textNodes.push(new Dy(t, n, A.styles));
    else if (ui(n))
      if (qh(n) && n.assignedNodes)
        n.assignedNodes().forEach(function(o) {
          return jo(t, o, A, r);
        });
      else {
        var a = Oh(t, n);
        a.styles.isVisible() && (Ky(n, a, r) ? a.flags |= 4 : Vy(a.styles) && (a.flags |= 2), Ry.indexOf(n.tagName) !== -1 && (a.flags |= 8), A.elements.push(a), n.slot, n.shadowRoot ? jo(t, n.shadowRoot, a, r) : !el(n) && !Vh(n) && !tl(n) && jo(t, n, a, r));
      }
}, Oh = function(t, e) {
  return gu(e) ? new kh(t, e) : Gh(e) ? new Hh(t, e) : Vh(e) ? new Th(t, e) : Gy(e) ? new Nh(t, e) : jy(e) ? new du(t, e) : qy(e) ? new Eu(t, e) : tl(e) ? new _h(t, e) : el(e) ? new Mh(t, e) : jh(e) ? new Ph(t, e) : new hn(t, e);
}, Rh = function(t, e) {
  var A = Oh(t, e);
  return A.flags |= 4, jo(t, e, A, A), A;
}, Ky = function(t, e, A) {
  return e.styles.isPositionedWithZIndex() || e.styles.opacity < 1 || e.styles.isTransformed() || xu(t) && A.styles.isTransparent();
}, Vy = function(t) {
  return t.isPositioned() || t.isFloating();
}, Kh = function(t) {
  return t.nodeType === Node.TEXT_NODE;
}, ui = function(t) {
  return t.nodeType === Node.ELEMENT_NODE;
}, hu = function(t) {
  return ui(t) && typeof t.style < "u" && !qo(t);
}, qo = function(t) {
  return typeof t.className == "object";
}, Gy = function(t) {
  return t.tagName === "LI";
}, jy = function(t) {
  return t.tagName === "OL";
}, qy = function(t) {
  return t.tagName === "INPUT";
}, Wy = function(t) {
  return t.tagName === "HTML";
}, Vh = function(t) {
  return t.tagName === "svg";
}, xu = function(t) {
  return t.tagName === "BODY";
}, Gh = function(t) {
  return t.tagName === "CANVAS";
}, gd = function(t) {
  return t.tagName === "VIDEO";
}, gu = function(t) {
  return t.tagName === "IMG";
}, jh = function(t) {
  return t.tagName === "IFRAME";
}, pd = function(t) {
  return t.tagName === "STYLE";
}, Xy = function(t) {
  return t.tagName === "SCRIPT";
}, el = function(t) {
  return t.tagName === "TEXTAREA";
}, tl = function(t) {
  return t.tagName === "SELECT";
}, qh = function(t) {
  return t.tagName === "SLOT";
}, Bd = function(t) {
  return t.tagName.indexOf("-") > 0;
}, zy = (
  /** @class */
  function() {
    function t() {
      this.counters = {};
    }
    return t.prototype.getCounterValue = function(e) {
      var A = this.counters[e];
      return A && A.length ? A[A.length - 1] : 1;
    }, t.prototype.getCounterValues = function(e) {
      var A = this.counters[e];
      return A || [];
    }, t.prototype.pop = function(e) {
      var A = this;
      e.forEach(function(r) {
        return A.counters[r].pop();
      });
    }, t.prototype.parse = function(e) {
      var A = this, r = e.counterIncrement, n = e.counterReset, s = !0;
      r !== null && r.forEach(function(o) {
        var c = A.counters[o.counter];
        c && o.increment !== 0 && (s = !1, c.length || c.push(1), c[Math.max(0, c.length - 1)] += o.increment);
      });
      var a = [];
      return s && n.forEach(function(o) {
        var c = A.counters[o.counter];
        a.push(o.counter), c || (c = A.counters[o.counter] = []), c.push(o.reset);
      }), a;
    }, t;
  }()
), wd = {
  integers: [1e3, 900, 500, 400, 100, 90, 50, 40, 10, 9, 5, 4, 1],
  values: ["M", "CM", "D", "CD", "C", "XC", "L", "XL", "X", "IX", "V", "IV", "I"]
}, vd = {
  integers: [
    9e3,
    8e3,
    7e3,
    6e3,
    5e3,
    4e3,
    3e3,
    2e3,
    1e3,
    900,
    800,
    700,
    600,
    500,
    400,
    300,
    200,
    100,
    90,
    80,
    70,
    60,
    50,
    40,
    30,
    20,
    10,
    9,
    8,
    7,
    6,
    5,
    4,
    3,
    2,
    1
  ],
  values: [
    "Ք",
    "Փ",
    "Ւ",
    "Ց",
    "Ր",
    "Տ",
    "Վ",
    "Ս",
    "Ռ",
    "Ջ",
    "Պ",
    "Չ",
    "Ո",
    "Շ",
    "Ն",
    "Յ",
    "Մ",
    "Ճ",
    "Ղ",
    "Ձ",
    "Հ",
    "Կ",
    "Ծ",
    "Խ",
    "Լ",
    "Ի",
    "Ժ",
    "Թ",
    "Ը",
    "Է",
    "Զ",
    "Ե",
    "Դ",
    "Գ",
    "Բ",
    "Ա"
  ]
}, Yy = {
  integers: [
    1e4,
    9e3,
    8e3,
    7e3,
    6e3,
    5e3,
    4e3,
    3e3,
    2e3,
    1e3,
    400,
    300,
    200,
    100,
    90,
    80,
    70,
    60,
    50,
    40,
    30,
    20,
    19,
    18,
    17,
    16,
    15,
    10,
    9,
    8,
    7,
    6,
    5,
    4,
    3,
    2,
    1
  ],
  values: [
    "י׳",
    "ט׳",
    "ח׳",
    "ז׳",
    "ו׳",
    "ה׳",
    "ד׳",
    "ג׳",
    "ב׳",
    "א׳",
    "ת",
    "ש",
    "ר",
    "ק",
    "צ",
    "פ",
    "ע",
    "ס",
    "נ",
    "מ",
    "ל",
    "כ",
    "יט",
    "יח",
    "יז",
    "טז",
    "טו",
    "י",
    "ט",
    "ח",
    "ז",
    "ו",
    "ה",
    "ד",
    "ג",
    "ב",
    "א"
  ]
}, Jy = {
  integers: [
    1e4,
    9e3,
    8e3,
    7e3,
    6e3,
    5e3,
    4e3,
    3e3,
    2e3,
    1e3,
    900,
    800,
    700,
    600,
    500,
    400,
    300,
    200,
    100,
    90,
    80,
    70,
    60,
    50,
    40,
    30,
    20,
    10,
    9,
    8,
    7,
    6,
    5,
    4,
    3,
    2,
    1
  ],
  values: [
    "ჵ",
    "ჰ",
    "ჯ",
    "ჴ",
    "ხ",
    "ჭ",
    "წ",
    "ძ",
    "ც",
    "ჩ",
    "შ",
    "ყ",
    "ღ",
    "ქ",
    "ფ",
    "ჳ",
    "ტ",
    "ს",
    "რ",
    "ჟ",
    "პ",
    "ო",
    "ჲ",
    "ნ",
    "მ",
    "ლ",
    "კ",
    "ი",
    "თ",
    "ჱ",
    "ზ",
    "ვ",
    "ე",
    "დ",
    "გ",
    "ბ",
    "ა"
  ]
}, ti = function(t, e, A, r, n, s) {
  return t < e || t > A ? Ba(t, n, s.length > 0) : r.integers.reduce(function(a, o, c) {
    for (; t >= o; )
      t -= o, a += r.values[c];
    return a;
  }, "") + s;
}, Wh = function(t, e, A, r) {
  var n = "";
  do
    A || t--, n = r(t) + n, t /= e;
  while (t * e >= e);
  return n;
}, Ft = function(t, e, A, r, n) {
  var s = A - e + 1;
  return (t < 0 ? "-" : "") + (Wh(Math.abs(t), s, r, function(a) {
    return Qt(Math.floor(a % s) + e);
  }) + n);
}, Bs = function(t, e, A) {
  A === void 0 && (A = ". ");
  var r = e.length;
  return Wh(Math.abs(t), r, !1, function(n) {
    return e[Math.floor(n % r)];
  }) + A;
}, oi = 1, Wn = 2, Xn = 4, aa = 8, Un = function(t, e, A, r, n, s) {
  if (t < -9999 || t > 9999)
    return Ba(t, 4, n.length > 0);
  var a = Math.abs(t), o = n;
  if (a === 0)
    return e[0] + o;
  for (var c = 0; a > 0 && c <= 4; c++) {
    var d = a % 10;
    d === 0 && Nt(s, oi) && o !== "" ? o = e[d] + o : d > 1 || d === 1 && c === 0 || d === 1 && c === 1 && Nt(s, Wn) || d === 1 && c === 1 && Nt(s, Xn) && t > 100 || d === 1 && c > 1 && Nt(s, aa) ? o = e[d] + (c > 0 ? A[c - 1] : "") + o : d === 1 && c > 0 && (o = A[c - 1] + o), a = Math.floor(a / 10);
  }
  return (t < 0 ? r : "") + o;
}, md = "十百千萬", yd = "拾佰仟萬", Cd = "マイナス", Sc = "마이너스", Ba = function(t, e, A) {
  var r = A ? ". " : "", n = A ? "、" : "", s = A ? ", " : "", a = A ? " " : "";
  switch (e) {
    case 0:
      return "•" + a;
    case 1:
      return "◦" + a;
    case 2:
      return "◾" + a;
    case 5:
      var o = Ft(t, 48, 57, !0, r);
      return o.length < 4 ? "0" + o : o;
    case 4:
      return Bs(t, "〇一二三四五六七八九", n);
    case 6:
      return ti(t, 1, 3999, wd, 3, r).toLowerCase();
    case 7:
      return ti(t, 1, 3999, wd, 3, r);
    case 8:
      return Ft(t, 945, 969, !1, r);
    case 9:
      return Ft(t, 97, 122, !1, r);
    case 10:
      return Ft(t, 65, 90, !1, r);
    case 11:
      return Ft(t, 1632, 1641, !0, r);
    case 12:
    case 49:
      return ti(t, 1, 9999, vd, 3, r);
    case 35:
      return ti(t, 1, 9999, vd, 3, r).toLowerCase();
    case 13:
      return Ft(t, 2534, 2543, !0, r);
    case 14:
    case 30:
      return Ft(t, 6112, 6121, !0, r);
    case 15:
      return Bs(t, "子丑寅卯辰巳午未申酉戌亥", n);
    case 16:
      return Bs(t, "甲乙丙丁戊己庚辛壬癸", n);
    case 17:
    case 48:
      return Un(t, "零一二三四五六七八九", md, "負", n, Wn | Xn | aa);
    case 47:
      return Un(t, "零壹貳參肆伍陸柒捌玖", yd, "負", n, oi | Wn | Xn | aa);
    case 42:
      return Un(t, "零一二三四五六七八九", md, "负", n, Wn | Xn | aa);
    case 41:
      return Un(t, "零壹贰叁肆伍陆柒捌玖", yd, "负", n, oi | Wn | Xn | aa);
    case 26:
      return Un(t, "〇一二三四五六七八九", "十百千万", Cd, n, 0);
    case 25:
      return Un(t, "零壱弐参四伍六七八九", "拾百千万", Cd, n, oi | Wn | Xn);
    case 31:
      return Un(t, "영일이삼사오육칠팔구", "십백천만", Sc, s, oi | Wn | Xn);
    case 33:
      return Un(t, "零一二三四五六七八九", "十百千萬", Sc, s, 0);
    case 32:
      return Un(t, "零壹貳參四五六七八九", "拾百千", Sc, s, oi | Wn | Xn);
    case 18:
      return Ft(t, 2406, 2415, !0, r);
    case 20:
      return ti(t, 1, 19999, Jy, 3, r);
    case 21:
      return Ft(t, 2790, 2799, !0, r);
    case 22:
      return Ft(t, 2662, 2671, !0, r);
    case 22:
      return ti(t, 1, 10999, Yy, 3, r);
    case 23:
      return Bs(t, "あいうえおかきくけこさしすせそたちつてとなにぬねのはひふへほまみむめもやゆよらりるれろわゐゑをん");
    case 24:
      return Bs(t, "いろはにほへとちりぬるをわかよたれそつねならむうゐのおくやまけふこえてあさきゆめみしゑひもせす");
    case 27:
      return Ft(t, 3302, 3311, !0, r);
    case 28:
      return Bs(t, "アイウエオカキクケコサシスセソタチツテトナニヌネノハヒフヘホマミムメモヤユヨラリルレロワヰヱヲン", n);
    case 29:
      return Bs(t, "イロハニホヘトチリヌルヲワカヨタレソツネナラムウヰノオクヤマケフコエテアサキユメミシヱヒモセス", n);
    case 34:
      return Ft(t, 3792, 3801, !0, r);
    case 37:
      return Ft(t, 6160, 6169, !0, r);
    case 38:
      return Ft(t, 4160, 4169, !0, r);
    case 39:
      return Ft(t, 2918, 2927, !0, r);
    case 40:
      return Ft(t, 1776, 1785, !0, r);
    case 43:
      return Ft(t, 3046, 3055, !0, r);
    case 44:
      return Ft(t, 3174, 3183, !0, r);
    case 45:
      return Ft(t, 3664, 3673, !0, r);
    case 46:
      return Ft(t, 3872, 3881, !0, r);
    case 3:
    default:
      return Ft(t, 48, 57, !0, r);
  }
}, Xh = "data-html2canvas-ignore", bd = (
  /** @class */
  function() {
    function t(e, A, r) {
      if (this.context = e, this.options = r, this.scrolledElements = [], this.referenceElement = A, this.counters = new zy(), this.quoteDepth = 0, !A.ownerDocument)
        throw new Error("Cloned element does not have an owner document");
      this.documentElement = this.cloneNode(A.ownerDocument.documentElement, !1);
    }
    return t.prototype.toIFrame = function(e, A) {
      var r = this, n = $y(e, A);
      if (!n.contentWindow)
        return Promise.reject("Unable to find iframe window");
      var s = e.defaultView.pageXOffset, a = e.defaultView.pageYOffset, o = n.contentWindow, c = o.document, d = eC(n).then(function() {
        return or(r, void 0, void 0, function() {
          var h, g;
          return er(this, function(w) {
            switch (w.label) {
              case 0:
                return this.scrolledElements.forEach(sC), o && (o.scrollTo(A.left, A.top), /(iPad|iPhone|iPod)/g.test(navigator.userAgent) && (o.scrollY !== A.top || o.scrollX !== A.left) && (this.context.logger.warn("Unable to restore scroll position for cloned document"), this.context.windowBounds = this.context.windowBounds.add(o.scrollX - A.left, o.scrollY - A.top, 0, 0))), h = this.options.onclone, g = this.clonedReferenceElement, typeof g > "u" ? [2, Promise.reject("Error finding the " + this.referenceElement.nodeName + " in the cloned document")] : c.fonts && c.fonts.ready ? [4, c.fonts.ready] : [3, 2];
              case 1:
                w.sent(), w.label = 2;
              case 2:
                return /(AppleWebKit)/g.test(navigator.userAgent) ? [4, AC(c)] : [3, 4];
              case 3:
                w.sent(), w.label = 4;
              case 4:
                return typeof h == "function" ? [2, Promise.resolve().then(function() {
                  return h(c, g);
                }).then(function() {
                  return n;
                })] : [2, n];
            }
          });
        });
      });
      return c.open(), c.write(rC(document.doctype) + "<html></html>"), nC(this.referenceElement.ownerDocument, s, a), c.replaceChild(c.adoptNode(this.documentElement), c.documentElement), c.close(), d;
    }, t.prototype.createElementClone = function(e) {
      if (uu(
        e,
        2
        /* CLONE */
      ))
        debugger;
      if (Gh(e))
        return this.createCanvasClone(e);
      if (gd(e))
        return this.createVideoClone(e);
      if (pd(e))
        return this.createStyleClone(e);
      var A = e.cloneNode(!1);
      return gu(A) && (gu(e) && e.currentSrc && e.currentSrc !== e.src && (A.src = e.currentSrc, A.srcset = ""), A.loading === "lazy" && (A.loading = "eager")), Bd(A) ? this.createCustomElementClone(A) : A;
    }, t.prototype.createCustomElementClone = function(e) {
      var A = document.createElement("html2canvascustomelement");
      return Dc(e.style, A), A;
    }, t.prototype.createStyleClone = function(e) {
      try {
        var A = e.sheet;
        if (A && A.cssRules) {
          var r = [].slice.call(A.cssRules, 0).reduce(function(s, a) {
            return a && typeof a.cssText == "string" ? s + a.cssText : s;
          }, ""), n = e.cloneNode(!1);
          return n.textContent = r, n;
        }
      } catch (s) {
        if (this.context.logger.error("Unable to access cssRules property", s), s.name !== "SecurityError")
          throw s;
      }
      return e.cloneNode(!1);
    }, t.prototype.createCanvasClone = function(e) {
      var A;
      if (this.options.inlineImages && e.ownerDocument) {
        var r = e.ownerDocument.createElement("img");
        try {
          return r.src = e.toDataURL(), r;
        } catch {
          this.context.logger.info("Unable to inline canvas contents, canvas is tainted", e);
        }
      }
      var n = e.cloneNode(!1);
      try {
        n.width = e.width, n.height = e.height;
        var s = e.getContext("2d"), a = n.getContext("2d");
        if (a)
          if (!this.options.allowTaint && s)
            a.putImageData(s.getImageData(0, 0, e.width, e.height), 0, 0);
          else {
            var o = (A = e.getContext("webgl2")) !== null && A !== void 0 ? A : e.getContext("webgl");
            if (o) {
              var c = o.getContextAttributes();
              (c == null ? void 0 : c.preserveDrawingBuffer) === !1 && this.context.logger.warn("Unable to clone WebGL context as it has preserveDrawingBuffer=false", e);
            }
            a.drawImage(e, 0, 0);
          }
        return n;
      } catch {
        this.context.logger.info("Unable to clone canvas as it is tainted", e);
      }
      return n;
    }, t.prototype.createVideoClone = function(e) {
      var A = e.ownerDocument.createElement("canvas");
      A.width = e.offsetWidth, A.height = e.offsetHeight;
      var r = A.getContext("2d");
      try {
        return r && (r.drawImage(e, 0, 0, A.width, A.height), this.options.allowTaint || r.getImageData(0, 0, A.width, A.height)), A;
      } catch {
        this.context.logger.info("Unable to clone video as it is tainted", e);
      }
      var n = e.ownerDocument.createElement("canvas");
      return n.width = e.offsetWidth, n.height = e.offsetHeight, n;
    }, t.prototype.appendChildNode = function(e, A, r) {
      (!ui(A) || !Xy(A) && !A.hasAttribute(Xh) && (typeof this.options.ignoreElements != "function" || !this.options.ignoreElements(A))) && (!this.options.copyStyles || !ui(A) || !pd(A)) && e.appendChild(this.cloneNode(A, r));
    }, t.prototype.cloneChildNodes = function(e, A, r) {
      for (var n = this, s = e.shadowRoot ? e.shadowRoot.firstChild : e.firstChild; s; s = s.nextSibling)
        if (ui(s) && qh(s) && typeof s.assignedNodes == "function") {
          var a = s.assignedNodes();
          a.length && a.forEach(function(o) {
            return n.appendChildNode(A, o, r);
          });
        } else
          this.appendChildNode(A, s, r);
    }, t.prototype.cloneNode = function(e, A) {
      if (Kh(e))
        return document.createTextNode(e.data);
      if (!e.ownerDocument)
        return e.cloneNode(!1);
      var r = e.ownerDocument.defaultView;
      if (r && ui(e) && (hu(e) || qo(e))) {
        var n = this.createElementClone(e);
        n.style.transitionProperty = "none";
        var s = r.getComputedStyle(e), a = r.getComputedStyle(e, ":before"), o = r.getComputedStyle(e, ":after");
        this.referenceElement === e && hu(n) && (this.clonedReferenceElement = n), xu(n) && oC(n);
        var c = this.counters.parse(new Ad(this.context, s)), d = this.resolvePseudoContent(e, n, a, da.BEFORE);
        Bd(e) && (A = !0), gd(e) || this.cloneChildNodes(e, n, A), d && n.insertBefore(d, n.firstChild);
        var h = this.resolvePseudoContent(e, n, o, da.AFTER);
        return h && n.appendChild(h), this.counters.pop(c), (s && (this.options.copyStyles || qo(e)) && !jh(e) || A) && Dc(s, n), (e.scrollTop !== 0 || e.scrollLeft !== 0) && this.scrolledElements.push([n, e.scrollLeft, e.scrollTop]), (el(e) || tl(e)) && (el(n) || tl(n)) && (n.value = e.value), n;
      }
      return e.cloneNode(!1);
    }, t.prototype.resolvePseudoContent = function(e, A, r, n) {
      var s = this;
      if (r) {
        var a = r.content, o = A.ownerDocument;
        if (!(!o || !a || a === "none" || a === "-moz-alt-content" || r.display === "none")) {
          this.counters.parse(new Ad(this.context, r));
          var c = new Gm(this.context, r), d = o.createElement("html2canvaspseudoelement");
          Dc(r, d), c.content.forEach(function(g) {
            if (g.type === 0)
              d.appendChild(o.createTextNode(g.value));
            else if (g.type === 22) {
              var w = o.createElement("img");
              w.src = g.value, w.style.opacity = "1", d.appendChild(w);
            } else if (g.type === 18) {
              if (g.name === "attr") {
                var p = g.values.filter(st);
                p.length && d.appendChild(o.createTextNode(e.getAttribute(p[0].value) || ""));
              } else if (g.name === "counter") {
                var m = g.values.filter(Bi), F = m[0], D = m[1];
                if (F && st(F)) {
                  var v = s.counters.getCounterValue(F.value), E = D && st(D) ? cu.parse(s.context, D.value) : 3;
                  d.appendChild(o.createTextNode(Ba(v, E, !1)));
                }
              } else if (g.name === "counters") {
                var P = g.values.filter(Bi), F = P[0], V = P[1], D = P[2];
                if (F && st(F)) {
                  var J = s.counters.getCounterValues(F.value), Y = D && st(D) ? cu.parse(s.context, D.value) : 3, W = V && V.type === 0 ? V.value : "", O = J.map(function(I) {
                    return Ba(I, Y, !1);
                  }).join(W);
                  d.appendChild(o.createTextNode(O));
                }
              }
            } else if (g.type === 20)
              switch (g.value) {
                case "open-quote":
                  d.appendChild(o.createTextNode(Zf(c.quotes, s.quoteDepth++, !0)));
                  break;
                case "close-quote":
                  d.appendChild(o.createTextNode(Zf(c.quotes, --s.quoteDepth, !1)));
                  break;
                default:
                  d.appendChild(o.createTextNode(g.value));
              }
          }), d.className = pu + " " + Bu;
          var h = n === da.BEFORE ? " " + pu : " " + Bu;
          return qo(A) ? A.className.baseValue += h : A.className += h, d;
        }
      }
    }, t.destroy = function(e) {
      return e.parentNode ? (e.parentNode.removeChild(e), !0) : !1;
    }, t;
  }()
), da;
(function(t) {
  t[t.BEFORE = 0] = "BEFORE", t[t.AFTER = 1] = "AFTER";
})(da || (da = {}));
var $y = function(t, e) {
  var A = t.createElement("iframe");
  return A.className = "html2canvas-container", A.style.visibility = "hidden", A.style.position = "fixed", A.style.left = "-10000px", A.style.top = "0px", A.style.border = "0", A.width = e.width.toString(), A.height = e.height.toString(), A.scrolling = "no", A.setAttribute(Xh, "true"), t.body.appendChild(A), A;
}, Zy = function(t) {
  return new Promise(function(e) {
    if (t.complete) {
      e();
      return;
    }
    if (!t.src) {
      e();
      return;
    }
    t.onload = e, t.onerror = e;
  });
}, AC = function(t) {
  return Promise.all([].slice.call(t.images, 0).map(Zy));
}, eC = function(t) {
  return new Promise(function(e, A) {
    var r = t.contentWindow;
    if (!r)
      return A("No window assigned for iframe");
    var n = r.document;
    r.onload = t.onload = function() {
      r.onload = t.onload = null;
      var s = setInterval(function() {
        n.body.childNodes.length > 0 && n.readyState === "complete" && (clearInterval(s), e(t));
      }, 50);
    };
  });
}, tC = [
  "all",
  "d",
  "content"
  // Safari shows pseudoelements if content is set
], Dc = function(t, e) {
  for (var A = t.length - 1; A >= 0; A--) {
    var r = t.item(A);
    tC.indexOf(r) === -1 && e.style.setProperty(r, t.getPropertyValue(r));
  }
  return e;
}, rC = function(t) {
  var e = "";
  return t && (e += "<!DOCTYPE ", t.name && (e += t.name), t.internalSubset && (e += t.internalSubset), t.publicId && (e += '"' + t.publicId + '"'), t.systemId && (e += '"' + t.systemId + '"'), e += ">"), e;
}, nC = function(t, e, A) {
  t && t.defaultView && (e !== t.defaultView.pageXOffset || A !== t.defaultView.pageYOffset) && t.defaultView.scrollTo(e, A);
}, sC = function(t) {
  var e = t[0], A = t[1], r = t[2];
  e.scrollLeft = A, e.scrollTop = r;
}, iC = ":before", aC = ":after", pu = "___html2canvas___pseudoelement_before", Bu = "___html2canvas___pseudoelement_after", Fd = `{
    content: "" !important;
    display: none !important;
}`, oC = function(t) {
  lC(t, "." + pu + iC + Fd + `
         .` + Bu + aC + Fd);
}, lC = function(t, e) {
  var A = t.ownerDocument;
  if (A) {
    var r = A.createElement("style");
    r.textContent = e, t.appendChild(r);
  }
}, zh = (
  /** @class */
  function() {
    function t() {
    }
    return t.getOrigin = function(e) {
      var A = t._link;
      return A ? (A.href = e, A.href = A.href, A.protocol + A.hostname + A.port) : "about:blank";
    }, t.isSameOrigin = function(e) {
      return t.getOrigin(e) === t._origin;
    }, t.setContext = function(e) {
      t._link = e.document.createElement("a"), t._origin = t.getOrigin(e.location.href);
    }, t._origin = "about:blank", t;
  }()
), cC = (
  /** @class */
  function() {
    function t(e, A) {
      this.context = e, this._options = A, this._cache = {};
    }
    return t.prototype.addImage = function(e) {
      var A = Promise.resolve();
      return this.has(e) || (Hc(e) || hC(e)) && (this._cache[e] = this.loadImage(e)).catch(function() {
      }), A;
    }, t.prototype.match = function(e) {
      return this._cache[e];
    }, t.prototype.loadImage = function(e) {
      return or(this, void 0, void 0, function() {
        var A, r, n, s, a = this;
        return er(this, function(o) {
          switch (o.label) {
            case 0:
              return A = zh.isSameOrigin(e), r = !kc(e) && this._options.useCORS === !0 && qt.SUPPORT_CORS_IMAGES && !A, n = !kc(e) && !A && !Hc(e) && typeof this._options.proxy == "string" && qt.SUPPORT_CORS_XHR && !r, !A && this._options.allowTaint === !1 && !kc(e) && !Hc(e) && !n && !r ? [
                2
                /*return*/
              ] : (s = e, n ? [4, this.proxy(s)] : [3, 2]);
            case 1:
              s = o.sent(), o.label = 2;
            case 2:
              return this.context.logger.debug("Added image " + e.substring(0, 256)), [4, new Promise(function(c, d) {
                var h = new Image();
                h.onload = function() {
                  return c(h);
                }, h.onerror = d, (gC(s) || r) && (h.crossOrigin = "anonymous"), h.src = s, h.complete === !0 && setTimeout(function() {
                  return c(h);
                }, 500), a._options.imageTimeout > 0 && setTimeout(function() {
                  return d("Timed out (" + a._options.imageTimeout + "ms) loading image");
                }, a._options.imageTimeout);
              })];
            case 3:
              return [2, o.sent()];
          }
        });
      });
    }, t.prototype.has = function(e) {
      return typeof this._cache[e] < "u";
    }, t.prototype.keys = function() {
      return Promise.resolve(Object.keys(this._cache));
    }, t.prototype.proxy = function(e) {
      var A = this, r = this._options.proxy;
      if (!r)
        throw new Error("No proxy defined");
      var n = e.substring(0, 256);
      return new Promise(function(s, a) {
        var o = qt.SUPPORT_RESPONSE_TYPE ? "blob" : "text", c = new XMLHttpRequest();
        c.onload = function() {
          if (c.status === 200)
            if (o === "text")
              s(c.response);
            else {
              var g = new FileReader();
              g.addEventListener("load", function() {
                return s(g.result);
              }, !1), g.addEventListener("error", function(w) {
                return a(w);
              }, !1), g.readAsDataURL(c.response);
            }
          else
            a("Failed to proxy resource " + n + " with status code " + c.status);
        }, c.onerror = a;
        var d = r.indexOf("?") > -1 ? "&" : "?";
        if (c.open("GET", "" + r + d + "url=" + encodeURIComponent(e) + "&responseType=" + o), o !== "text" && c instanceof XMLHttpRequest && (c.responseType = o), A._options.imageTimeout) {
          var h = A._options.imageTimeout;
          c.timeout = h, c.ontimeout = function() {
            return a("Timed out (" + h + "ms) proxying " + n);
          };
        }
        c.send();
      });
    }, t;
  }()
), uC = /^data:image\/svg\+xml/i, fC = /^data:image\/.*;base64,/i, dC = /^data:image\/.*/i, hC = function(t) {
  return qt.SUPPORT_SVG_DRAWING || !pC(t);
}, kc = function(t) {
  return dC.test(t);
}, gC = function(t) {
  return fC.test(t);
}, Hc = function(t) {
  return t.substr(0, 4) === "blob";
}, pC = function(t) {
  return t.substr(-3).toLowerCase() === "svg" || uC.test(t);
}, oe = (
  /** @class */
  function() {
    function t(e, A) {
      this.type = 0, this.x = e, this.y = A;
    }
    return t.prototype.add = function(e, A) {
      return new t(this.x + e, this.y + A);
    }, t;
  }()
), ri = function(t, e, A) {
  return new oe(t.x + (e.x - t.x) * A, t.y + (e.y - t.y) * A);
}, ko = (
  /** @class */
  function() {
    function t(e, A, r, n) {
      this.type = 1, this.start = e, this.startControl = A, this.endControl = r, this.end = n;
    }
    return t.prototype.subdivide = function(e, A) {
      var r = ri(this.start, this.startControl, e), n = ri(this.startControl, this.endControl, e), s = ri(this.endControl, this.end, e), a = ri(r, n, e), o = ri(n, s, e), c = ri(a, o, e);
      return A ? new t(this.start, r, a, c) : new t(c, o, s, this.end);
    }, t.prototype.add = function(e, A) {
      return new t(this.start.add(e, A), this.startControl.add(e, A), this.endControl.add(e, A), this.end.add(e, A));
    }, t.prototype.reverse = function() {
      return new t(this.end, this.endControl, this.startControl, this.start);
    }, t;
  }()
), Rr = function(t) {
  return t.type === 1;
}, BC = (
  /** @class */
  /* @__PURE__ */ function() {
    function t(e) {
      var A = e.styles, r = e.bounds, n = sa(A.borderTopLeftRadius, r.width, r.height), s = n[0], a = n[1], o = sa(A.borderTopRightRadius, r.width, r.height), c = o[0], d = o[1], h = sa(A.borderBottomRightRadius, r.width, r.height), g = h[0], w = h[1], p = sa(A.borderBottomLeftRadius, r.width, r.height), m = p[0], F = p[1], D = [];
      D.push((s + c) / r.width), D.push((m + g) / r.width), D.push((a + F) / r.height), D.push((d + w) / r.height);
      var v = Math.max.apply(Math, D);
      v > 1 && (s /= v, a /= v, c /= v, d /= v, g /= v, w /= v, m /= v, F /= v);
      var E = r.width - c, P = r.height - w, V = r.width - g, J = r.height - F, Y = A.borderTopWidth, W = A.borderRightWidth, O = A.borderBottomWidth, q = A.borderLeftWidth, lA = ut(A.paddingTop, e.bounds.width), I = ut(A.paddingRight, e.bounds.width), Q = ut(A.paddingBottom, e.bounds.width), k = ut(A.paddingLeft, e.bounds.width);
      this.topLeftBorderDoubleOuterBox = s > 0 || a > 0 ? dt(r.left + q / 3, r.top + Y / 3, s - q / 3, a - Y / 3, Ye.TOP_LEFT) : new oe(r.left + q / 3, r.top + Y / 3), this.topRightBorderDoubleOuterBox = s > 0 || a > 0 ? dt(r.left + E, r.top + Y / 3, c - W / 3, d - Y / 3, Ye.TOP_RIGHT) : new oe(r.left + r.width - W / 3, r.top + Y / 3), this.bottomRightBorderDoubleOuterBox = g > 0 || w > 0 ? dt(r.left + V, r.top + P, g - W / 3, w - O / 3, Ye.BOTTOM_RIGHT) : new oe(r.left + r.width - W / 3, r.top + r.height - O / 3), this.bottomLeftBorderDoubleOuterBox = m > 0 || F > 0 ? dt(r.left + q / 3, r.top + J, m - q / 3, F - O / 3, Ye.BOTTOM_LEFT) : new oe(r.left + q / 3, r.top + r.height - O / 3), this.topLeftBorderDoubleInnerBox = s > 0 || a > 0 ? dt(r.left + q * 2 / 3, r.top + Y * 2 / 3, s - q * 2 / 3, a - Y * 2 / 3, Ye.TOP_LEFT) : new oe(r.left + q * 2 / 3, r.top + Y * 2 / 3), this.topRightBorderDoubleInnerBox = s > 0 || a > 0 ? dt(r.left + E, r.top + Y * 2 / 3, c - W * 2 / 3, d - Y * 2 / 3, Ye.TOP_RIGHT) : new oe(r.left + r.width - W * 2 / 3, r.top + Y * 2 / 3), this.bottomRightBorderDoubleInnerBox = g > 0 || w > 0 ? dt(r.left + V, r.top + P, g - W * 2 / 3, w - O * 2 / 3, Ye.BOTTOM_RIGHT) : new oe(r.left + r.width - W * 2 / 3, r.top + r.height - O * 2 / 3), this.bottomLeftBorderDoubleInnerBox = m > 0 || F > 0 ? dt(r.left + q * 2 / 3, r.top + J, m - q * 2 / 3, F - O * 2 / 3, Ye.BOTTOM_LEFT) : new oe(r.left + q * 2 / 3, r.top + r.height - O * 2 / 3), this.topLeftBorderStroke = s > 0 || a > 0 ? dt(r.left + q / 2, r.top + Y / 2, s - q / 2, a - Y / 2, Ye.TOP_LEFT) : new oe(r.left + q / 2, r.top + Y / 2), this.topRightBorderStroke = s > 0 || a > 0 ? dt(r.left + E, r.top + Y / 2, c - W / 2, d - Y / 2, Ye.TOP_RIGHT) : new oe(r.left + r.width - W / 2, r.top + Y / 2), this.bottomRightBorderStroke = g > 0 || w > 0 ? dt(r.left + V, r.top + P, g - W / 2, w - O / 2, Ye.BOTTOM_RIGHT) : new oe(r.left + r.width - W / 2, r.top + r.height - O / 2), this.bottomLeftBorderStroke = m > 0 || F > 0 ? dt(r.left + q / 2, r.top + J, m - q / 2, F - O / 2, Ye.BOTTOM_LEFT) : new oe(r.left + q / 2, r.top + r.height - O / 2), this.topLeftBorderBox = s > 0 || a > 0 ? dt(r.left, r.top, s, a, Ye.TOP_LEFT) : new oe(r.left, r.top), this.topRightBorderBox = c > 0 || d > 0 ? dt(r.left + E, r.top, c, d, Ye.TOP_RIGHT) : new oe(r.left + r.width, r.top), this.bottomRightBorderBox = g > 0 || w > 0 ? dt(r.left + V, r.top + P, g, w, Ye.BOTTOM_RIGHT) : new oe(r.left + r.width, r.top + r.height), this.bottomLeftBorderBox = m > 0 || F > 0 ? dt(r.left, r.top + J, m, F, Ye.BOTTOM_LEFT) : new oe(r.left, r.top + r.height), this.topLeftPaddingBox = s > 0 || a > 0 ? dt(r.left + q, r.top + Y, Math.max(0, s - q), Math.max(0, a - Y), Ye.TOP_LEFT) : new oe(r.left + q, r.top + Y), this.topRightPaddingBox = c > 0 || d > 0 ? dt(r.left + Math.min(E, r.width - W), r.top + Y, E > r.width + W ? 0 : Math.max(0, c - W), Math.max(0, d - Y), Ye.TOP_RIGHT) : new oe(r.left + r.width - W, r.top + Y), this.bottomRightPaddingBox = g > 0 || w > 0 ? dt(r.left + Math.min(V, r.width - q), r.top + Math.min(P, r.height - O), Math.max(0, g - W), Math.max(0, w - O), Ye.BOTTOM_RIGHT) : new oe(r.left + r.width - W, r.top + r.height - O), this.bottomLeftPaddingBox = m > 0 || F > 0 ? dt(r.left + q, r.top + Math.min(J, r.height - O), Math.max(0, m - q), Math.max(0, F - O), Ye.BOTTOM_LEFT) : new oe(r.left + q, r.top + r.height - O), this.topLeftContentBox = s > 0 || a > 0 ? dt(r.left + q + k, r.top + Y + lA, Math.max(0, s - (q + k)), Math.max(0, a - (Y + lA)), Ye.TOP_LEFT) : new oe(r.left + q + k, r.top + Y + lA), this.topRightContentBox = c > 0 || d > 0 ? dt(r.left + Math.min(E, r.width + q + k), r.top + Y + lA, E > r.width + q + k ? 0 : c - q + k, d - (Y + lA), Ye.TOP_RIGHT) : new oe(r.left + r.width - (W + I), r.top + Y + lA), this.bottomRightContentBox = g > 0 || w > 0 ? dt(r.left + Math.min(V, r.width - (q + k)), r.top + Math.min(P, r.height + Y + lA), Math.max(0, g - (W + I)), w - (O + Q), Ye.BOTTOM_RIGHT) : new oe(r.left + r.width - (W + I), r.top + r.height - (O + Q)), this.bottomLeftContentBox = m > 0 || F > 0 ? dt(r.left + q + k, r.top + J, Math.max(0, m - (q + k)), F - (O + Q), Ye.BOTTOM_LEFT) : new oe(r.left + q + k, r.top + r.height - (O + Q));
    }
    return t;
  }()
), Ye;
(function(t) {
  t[t.TOP_LEFT = 0] = "TOP_LEFT", t[t.TOP_RIGHT = 1] = "TOP_RIGHT", t[t.BOTTOM_RIGHT = 2] = "BOTTOM_RIGHT", t[t.BOTTOM_LEFT = 3] = "BOTTOM_LEFT";
})(Ye || (Ye = {}));
var dt = function(t, e, A, r, n) {
  var s = 4 * ((Math.sqrt(2) - 1) / 3), a = A * s, o = r * s, c = t + A, d = e + r;
  switch (n) {
    case Ye.TOP_LEFT:
      return new ko(new oe(t, d), new oe(t, d - o), new oe(c - a, e), new oe(c, e));
    case Ye.TOP_RIGHT:
      return new ko(new oe(t, e), new oe(t + a, e), new oe(c, d - o), new oe(c, d));
    case Ye.BOTTOM_RIGHT:
      return new ko(new oe(c, e), new oe(c, e + o), new oe(t + a, d), new oe(t, d));
    case Ye.BOTTOM_LEFT:
    default:
      return new ko(new oe(c, d), new oe(c - a, d), new oe(t, e + o), new oe(t, e));
  }
}, rl = function(t) {
  return [t.topLeftBorderBox, t.topRightBorderBox, t.bottomRightBorderBox, t.bottomLeftBorderBox];
}, wC = function(t) {
  return [
    t.topLeftContentBox,
    t.topRightContentBox,
    t.bottomRightContentBox,
    t.bottomLeftContentBox
  ];
}, nl = function(t) {
  return [
    t.topLeftPaddingBox,
    t.topRightPaddingBox,
    t.bottomRightPaddingBox,
    t.bottomLeftPaddingBox
  ];
}, vC = (
  /** @class */
  /* @__PURE__ */ function() {
    function t(e, A, r) {
      this.offsetX = e, this.offsetY = A, this.matrix = r, this.type = 0, this.target = 6;
    }
    return t;
  }()
), Ho = (
  /** @class */
  /* @__PURE__ */ function() {
    function t(e, A) {
      this.path = e, this.target = A, this.type = 1;
    }
    return t;
  }()
), mC = (
  /** @class */
  /* @__PURE__ */ function() {
    function t(e) {
      this.opacity = e, this.type = 2, this.target = 6;
    }
    return t;
  }()
), yC = function(t) {
  return t.type === 0;
}, Yh = function(t) {
  return t.type === 1;
}, CC = function(t) {
  return t.type === 2;
}, Qd = function(t, e) {
  return t.length === e.length ? t.some(function(A, r) {
    return A === e[r];
  }) : !1;
}, bC = function(t, e, A, r, n) {
  return t.map(function(s, a) {
    switch (a) {
      case 0:
        return s.add(e, A);
      case 1:
        return s.add(e + r, A);
      case 2:
        return s.add(e + r, A + n);
      case 3:
        return s.add(e, A + n);
    }
    return s;
  });
}, Jh = (
  /** @class */
  /* @__PURE__ */ function() {
    function t(e) {
      this.element = e, this.inlineLevel = [], this.nonInlineLevel = [], this.negativeZIndex = [], this.zeroOrAutoZIndexOrTransformedOrOpacity = [], this.positiveZIndex = [], this.nonPositionedFloats = [], this.nonPositionedInlineLevel = [];
    }
    return t;
  }()
), $h = (
  /** @class */
  function() {
    function t(e, A) {
      if (this.container = e, this.parent = A, this.effects = [], this.curves = new BC(this.container), this.container.styles.opacity < 1 && this.effects.push(new mC(this.container.styles.opacity)), this.container.styles.transform !== null) {
        var r = this.container.bounds.left + this.container.styles.transformOrigin[0].number, n = this.container.bounds.top + this.container.styles.transformOrigin[1].number, s = this.container.styles.transform;
        this.effects.push(new vC(r, n, s));
      }
      if (this.container.styles.overflowX !== 0) {
        var a = rl(this.curves), o = nl(this.curves);
        Qd(a, o) ? this.effects.push(new Ho(
          a,
          6
          /* CONTENT */
        )) : (this.effects.push(new Ho(
          a,
          2
          /* BACKGROUND_BORDERS */
        )), this.effects.push(new Ho(
          o,
          4
          /* CONTENT */
        )));
      }
    }
    return t.prototype.getEffects = function(e) {
      for (var A = [
        2,
        3
        /* FIXED */
      ].indexOf(this.container.styles.position) === -1, r = this.parent, n = this.effects.slice(0); r; ) {
        var s = r.effects.filter(function(c) {
          return !Yh(c);
        });
        if (A || r.container.styles.position !== 0 || !r.parent) {
          if (n.unshift.apply(n, s), A = [
            2,
            3
            /* FIXED */
          ].indexOf(r.container.styles.position) === -1, r.container.styles.overflowX !== 0) {
            var a = rl(r.curves), o = nl(r.curves);
            Qd(a, o) || n.unshift(new Ho(
              o,
              6
              /* CONTENT */
            ));
          }
        } else
          n.unshift.apply(n, s);
        r = r.parent;
      }
      return n.filter(function(c) {
        return Nt(c.target, e);
      });
    }, t;
  }()
), wu = function(t, e, A, r) {
  t.container.elements.forEach(function(n) {
    var s = Nt(
      n.flags,
      4
      /* CREATES_REAL_STACKING_CONTEXT */
    ), a = Nt(
      n.flags,
      2
      /* CREATES_STACKING_CONTEXT */
    ), o = new $h(n, t);
    Nt(
      n.styles.display,
      2048
      /* LIST_ITEM */
    ) && r.push(o);
    var c = Nt(
      n.flags,
      8
      /* IS_LIST_OWNER */
    ) ? [] : r;
    if (s || a) {
      var d = s || n.styles.isPositioned() ? A : e, h = new Jh(o);
      if (n.styles.isPositioned() || n.styles.opacity < 1 || n.styles.isTransformed()) {
        var g = n.styles.zIndex.order;
        if (g < 0) {
          var w = 0;
          d.negativeZIndex.some(function(m, F) {
            return g > m.element.container.styles.zIndex.order ? (w = F, !1) : w > 0;
          }), d.negativeZIndex.splice(w, 0, h);
        } else if (g > 0) {
          var p = 0;
          d.positiveZIndex.some(function(m, F) {
            return g >= m.element.container.styles.zIndex.order ? (p = F + 1, !1) : p > 0;
          }), d.positiveZIndex.splice(p, 0, h);
        } else
          d.zeroOrAutoZIndexOrTransformedOrOpacity.push(h);
      } else
        n.styles.isFloating() ? d.nonPositionedFloats.push(h) : d.nonPositionedInlineLevel.push(h);
      wu(o, h, s ? h : A, c);
    } else
      n.styles.isInlineLevel() ? e.inlineLevel.push(o) : e.nonInlineLevel.push(o), wu(o, e, A, c);
    Nt(
      n.flags,
      8
      /* IS_LIST_OWNER */
    ) && Zh(n, c);
  });
}, Zh = function(t, e) {
  for (var A = t instanceof du ? t.start : 1, r = t instanceof du ? t.reversed : !1, n = 0; n < e.length; n++) {
    var s = e[n];
    s.container instanceof Nh && typeof s.container.value == "number" && s.container.value !== 0 && (A = s.container.value), s.listValue = Ba(A, s.container.styles.listStyleType, !0), A += r ? -1 : 1;
  }
}, FC = function(t) {
  var e = new $h(t, null), A = new Jh(e), r = [];
  return wu(e, A, A, r), Zh(e.container, r), A;
}, Ud = function(t, e) {
  switch (e) {
    case 0:
      return Vr(t.topLeftBorderBox, t.topLeftPaddingBox, t.topRightBorderBox, t.topRightPaddingBox);
    case 1:
      return Vr(t.topRightBorderBox, t.topRightPaddingBox, t.bottomRightBorderBox, t.bottomRightPaddingBox);
    case 2:
      return Vr(t.bottomRightBorderBox, t.bottomRightPaddingBox, t.bottomLeftBorderBox, t.bottomLeftPaddingBox);
    case 3:
    default:
      return Vr(t.bottomLeftBorderBox, t.bottomLeftPaddingBox, t.topLeftBorderBox, t.topLeftPaddingBox);
  }
}, QC = function(t, e) {
  switch (e) {
    case 0:
      return Vr(t.topLeftBorderBox, t.topLeftBorderDoubleOuterBox, t.topRightBorderBox, t.topRightBorderDoubleOuterBox);
    case 1:
      return Vr(t.topRightBorderBox, t.topRightBorderDoubleOuterBox, t.bottomRightBorderBox, t.bottomRightBorderDoubleOuterBox);
    case 2:
      return Vr(t.bottomRightBorderBox, t.bottomRightBorderDoubleOuterBox, t.bottomLeftBorderBox, t.bottomLeftBorderDoubleOuterBox);
    case 3:
    default:
      return Vr(t.bottomLeftBorderBox, t.bottomLeftBorderDoubleOuterBox, t.topLeftBorderBox, t.topLeftBorderDoubleOuterBox);
  }
}, UC = function(t, e) {
  switch (e) {
    case 0:
      return Vr(t.topLeftBorderDoubleInnerBox, t.topLeftPaddingBox, t.topRightBorderDoubleInnerBox, t.topRightPaddingBox);
    case 1:
      return Vr(t.topRightBorderDoubleInnerBox, t.topRightPaddingBox, t.bottomRightBorderDoubleInnerBox, t.bottomRightPaddingBox);
    case 2:
      return Vr(t.bottomRightBorderDoubleInnerBox, t.bottomRightPaddingBox, t.bottomLeftBorderDoubleInnerBox, t.bottomLeftPaddingBox);
    case 3:
    default:
      return Vr(t.bottomLeftBorderDoubleInnerBox, t.bottomLeftPaddingBox, t.topLeftBorderDoubleInnerBox, t.topLeftPaddingBox);
  }
}, LC = function(t, e) {
  switch (e) {
    case 0:
      return To(t.topLeftBorderStroke, t.topRightBorderStroke);
    case 1:
      return To(t.topRightBorderStroke, t.bottomRightBorderStroke);
    case 2:
      return To(t.bottomRightBorderStroke, t.bottomLeftBorderStroke);
    case 3:
    default:
      return To(t.bottomLeftBorderStroke, t.topLeftBorderStroke);
  }
}, To = function(t, e) {
  var A = [];
  return Rr(t) ? A.push(t.subdivide(0.5, !1)) : A.push(t), Rr(e) ? A.push(e.subdivide(0.5, !0)) : A.push(e), A;
}, Vr = function(t, e, A, r) {
  var n = [];
  return Rr(t) ? n.push(t.subdivide(0.5, !1)) : n.push(t), Rr(A) ? n.push(A.subdivide(0.5, !0)) : n.push(A), Rr(r) ? n.push(r.subdivide(0.5, !0).reverse()) : n.push(r), Rr(e) ? n.push(e.subdivide(0.5, !1).reverse()) : n.push(e), n;
}, Ag = function(t) {
  var e = t.bounds, A = t.styles;
  return e.add(A.borderLeftWidth, A.borderTopWidth, -(A.borderRightWidth + A.borderLeftWidth), -(A.borderTopWidth + A.borderBottomWidth));
}, sl = function(t) {
  var e = t.styles, A = t.bounds, r = ut(e.paddingLeft, A.width), n = ut(e.paddingRight, A.width), s = ut(e.paddingTop, A.width), a = ut(e.paddingBottom, A.width);
  return A.add(r + e.borderLeftWidth, s + e.borderTopWidth, -(e.borderRightWidth + e.borderLeftWidth + r + n), -(e.borderTopWidth + e.borderBottomWidth + s + a));
}, EC = function(t, e) {
  return t === 0 ? e.bounds : t === 2 ? sl(e) : Ag(e);
}, xC = function(t, e) {
  return t === 0 ? e.bounds : t === 2 ? sl(e) : Ag(e);
}, Tc = function(t, e, A) {
  var r = EC(li(t.styles.backgroundOrigin, e), t), n = xC(li(t.styles.backgroundClip, e), t), s = IC(li(t.styles.backgroundSize, e), A, r), a = s[0], o = s[1], c = sa(li(t.styles.backgroundPosition, e), r.width - a, r.height - o), d = SC(li(t.styles.backgroundRepeat, e), c, s, r, n), h = Math.round(r.left + c[0]), g = Math.round(r.top + c[1]);
  return [d, h, g, a, o];
}, ni = function(t) {
  return st(t) && t.value === pi.AUTO;
}, No = function(t) {
  return typeof t == "number";
}, IC = function(t, e, A) {
  var r = e[0], n = e[1], s = e[2], a = t[0], o = t[1];
  if (!a)
    return [0, 0];
  if (kt(a) && o && kt(o))
    return [ut(a, A.width), ut(o, A.height)];
  var c = No(s);
  if (st(a) && (a.value === pi.CONTAIN || a.value === pi.COVER)) {
    if (No(s)) {
      var d = A.width / A.height;
      return d < s != (a.value === pi.COVER) ? [A.width, A.width / s] : [A.height * s, A.height];
    }
    return [A.width, A.height];
  }
  var h = No(r), g = No(n), w = h || g;
  if (ni(a) && (!o || ni(o))) {
    if (h && g)
      return [r, n];
    if (!c && !w)
      return [A.width, A.height];
    if (w && c) {
      var p = h ? r : n * s, m = g ? n : r / s;
      return [p, m];
    }
    var F = h ? r : A.width, D = g ? n : A.height;
    return [F, D];
  }
  if (c) {
    var v = 0, E = 0;
    return kt(a) ? v = ut(a, A.width) : kt(o) && (E = ut(o, A.height)), ni(a) ? v = E * s : (!o || ni(o)) && (E = v / s), [v, E];
  }
  var P = null, V = null;
  if (kt(a) ? P = ut(a, A.width) : o && kt(o) && (V = ut(o, A.height)), P !== null && (!o || ni(o)) && (V = h && g ? P / r * n : A.height), V !== null && ni(a) && (P = h && g ? V / n * r : A.width), P !== null && V !== null)
    return [P, V];
  throw new Error("Unable to calculate background-size for element");
}, li = function(t, e) {
  var A = t[e];
  return typeof A > "u" ? t[0] : A;
}, SC = function(t, e, A, r, n) {
  var s = e[0], a = e[1], o = A[0], c = A[1];
  switch (t) {
    case 2:
      return [
        new oe(Math.round(r.left), Math.round(r.top + a)),
        new oe(Math.round(r.left + r.width), Math.round(r.top + a)),
        new oe(Math.round(r.left + r.width), Math.round(c + r.top + a)),
        new oe(Math.round(r.left), Math.round(c + r.top + a))
      ];
    case 3:
      return [
        new oe(Math.round(r.left + s), Math.round(r.top)),
        new oe(Math.round(r.left + s + o), Math.round(r.top)),
        new oe(Math.round(r.left + s + o), Math.round(r.height + r.top)),
        new oe(Math.round(r.left + s), Math.round(r.height + r.top))
      ];
    case 1:
      return [
        new oe(Math.round(r.left + s), Math.round(r.top + a)),
        new oe(Math.round(r.left + s + o), Math.round(r.top + a)),
        new oe(Math.round(r.left + s + o), Math.round(r.top + a + c)),
        new oe(Math.round(r.left + s), Math.round(r.top + a + c))
      ];
    default:
      return [
        new oe(Math.round(n.left), Math.round(n.top)),
        new oe(Math.round(n.left + n.width), Math.round(n.top)),
        new oe(Math.round(n.left + n.width), Math.round(n.height + n.top)),
        new oe(Math.round(n.left), Math.round(n.height + n.top))
      ];
  }
}, DC = "data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7", Ld = "Hidden Text", kC = (
  /** @class */
  function() {
    function t(e) {
      this._data = {}, this._document = e;
    }
    return t.prototype.parseMetrics = function(e, A) {
      var r = this._document.createElement("div"), n = this._document.createElement("img"), s = this._document.createElement("span"), a = this._document.body;
      r.style.visibility = "hidden", r.style.fontFamily = e, r.style.fontSize = A, r.style.margin = "0", r.style.padding = "0", r.style.whiteSpace = "nowrap", a.appendChild(r), n.src = DC, n.width = 1, n.height = 1, n.style.margin = "0", n.style.padding = "0", n.style.verticalAlign = "baseline", s.style.fontFamily = e, s.style.fontSize = A, s.style.margin = "0", s.style.padding = "0", s.appendChild(this._document.createTextNode(Ld)), r.appendChild(s), r.appendChild(n);
      var o = n.offsetTop - s.offsetTop + 2;
      r.removeChild(s), r.appendChild(this._document.createTextNode(Ld)), r.style.lineHeight = "normal", n.style.verticalAlign = "super";
      var c = n.offsetTop - r.offsetTop + 2;
      return a.removeChild(r), { baseline: o, middle: c };
    }, t.prototype.getMetrics = function(e, A) {
      var r = e + " " + A;
      return typeof this._data[r] > "u" && (this._data[r] = this.parseMetrics(e, A)), this._data[r];
    }, t;
  }()
), eg = (
  /** @class */
  /* @__PURE__ */ function() {
    function t(e, A) {
      this.context = e, this.options = A;
    }
    return t;
  }()
), HC = 1e4, TC = (
  /** @class */
  function(t) {
    tn(e, t);
    function e(A, r) {
      var n = t.call(this, A, r) || this;
      return n._activeEffects = [], n.canvas = r.canvas ? r.canvas : document.createElement("canvas"), n.ctx = n.canvas.getContext("2d"), r.canvas || (n.canvas.width = Math.floor(r.width * r.scale), n.canvas.height = Math.floor(r.height * r.scale), n.canvas.style.width = r.width + "px", n.canvas.style.height = r.height + "px"), n.fontMetrics = new kC(document), n.ctx.scale(n.options.scale, n.options.scale), n.ctx.translate(-r.x, -r.y), n.ctx.textBaseline = "bottom", n._activeEffects = [], n.context.logger.debug("Canvas renderer initialized (" + r.width + "x" + r.height + ") with scale " + r.scale), n;
    }
    return e.prototype.applyEffects = function(A) {
      for (var r = this; this._activeEffects.length; )
        this.popEffect();
      A.forEach(function(n) {
        return r.applyEffect(n);
      });
    }, e.prototype.applyEffect = function(A) {
      this.ctx.save(), CC(A) && (this.ctx.globalAlpha = A.opacity), yC(A) && (this.ctx.translate(A.offsetX, A.offsetY), this.ctx.transform(A.matrix[0], A.matrix[1], A.matrix[2], A.matrix[3], A.matrix[4], A.matrix[5]), this.ctx.translate(-A.offsetX, -A.offsetY)), Yh(A) && (this.path(A.path), this.ctx.clip()), this._activeEffects.push(A);
    }, e.prototype.popEffect = function() {
      this._activeEffects.pop(), this.ctx.restore();
    }, e.prototype.renderStack = function(A) {
      return or(this, void 0, void 0, function() {
        var r;
        return er(this, function(n) {
          switch (n.label) {
            case 0:
              return r = A.element.container.styles, r.isVisible() ? [4, this.renderStackContent(A)] : [3, 2];
            case 1:
              n.sent(), n.label = 2;
            case 2:
              return [
                2
                /*return*/
              ];
          }
        });
      });
    }, e.prototype.renderNode = function(A) {
      return or(this, void 0, void 0, function() {
        return er(this, function(r) {
          switch (r.label) {
            case 0:
              if (Nt(
                A.container.flags,
                16
                /* DEBUG_RENDER */
              ))
                debugger;
              return A.container.styles.isVisible() ? [4, this.renderNodeBackgroundAndBorders(A)] : [3, 3];
            case 1:
              return r.sent(), [4, this.renderNodeContent(A)];
            case 2:
              r.sent(), r.label = 3;
            case 3:
              return [
                2
                /*return*/
              ];
          }
        });
      });
    }, e.prototype.renderTextWithLetterSpacing = function(A, r, n) {
      var s = this;
      if (r === 0)
        this.ctx.fillText(A.text, A.bounds.left, A.bounds.top + n);
      else {
        var a = Lu(A.text);
        a.reduce(function(o, c) {
          return s.ctx.fillText(c, o, A.bounds.top + n), o + s.ctx.measureText(c).width;
        }, A.bounds.left);
      }
    }, e.prototype.createFontStyle = function(A) {
      var r = A.fontVariant.filter(function(a) {
        return a === "normal" || a === "small-caps";
      }).join(""), n = OC(A.fontFamily).join(", "), s = va(A.fontSize) ? "" + A.fontSize.number + A.fontSize.unit : A.fontSize.number + "px";
      return [
        [A.fontStyle, r, A.fontWeight, s, n].join(" "),
        n,
        s
      ];
    }, e.prototype.renderTextNode = function(A, r) {
      return or(this, void 0, void 0, function() {
        var n, s, a, o, c, d, h, g, w = this;
        return er(this, function(p) {
          return n = this.createFontStyle(r), s = n[0], a = n[1], o = n[2], this.ctx.font = s, this.ctx.direction = r.direction === 1 ? "rtl" : "ltr", this.ctx.textAlign = "left", this.ctx.textBaseline = "alphabetic", c = this.fontMetrics.getMetrics(a, o), d = c.baseline, h = c.middle, g = r.paintOrder, A.textBounds.forEach(function(m) {
            g.forEach(function(F) {
              switch (F) {
                case 0:
                  w.ctx.fillStyle = Rt(r.color), w.renderTextWithLetterSpacing(m, r.letterSpacing, d);
                  var D = r.textShadow;
                  D.length && m.text.trim().length && (D.slice(0).reverse().forEach(function(v) {
                    w.ctx.shadowColor = Rt(v.color), w.ctx.shadowOffsetX = v.offsetX.number * w.options.scale, w.ctx.shadowOffsetY = v.offsetY.number * w.options.scale, w.ctx.shadowBlur = v.blur.number, w.renderTextWithLetterSpacing(m, r.letterSpacing, d);
                  }), w.ctx.shadowColor = "", w.ctx.shadowOffsetX = 0, w.ctx.shadowOffsetY = 0, w.ctx.shadowBlur = 0), r.textDecorationLine.length && (w.ctx.fillStyle = Rt(r.textDecorationColor || r.color), r.textDecorationLine.forEach(function(v) {
                    switch (v) {
                      case 1:
                        w.ctx.fillRect(m.bounds.left, Math.round(m.bounds.top + d), m.bounds.width, 1);
                        break;
                      case 2:
                        w.ctx.fillRect(m.bounds.left, Math.round(m.bounds.top), m.bounds.width, 1);
                        break;
                      case 3:
                        w.ctx.fillRect(m.bounds.left, Math.ceil(m.bounds.top + h), m.bounds.width, 1);
                        break;
                    }
                  }));
                  break;
                case 1:
                  r.webkitTextStrokeWidth && m.text.trim().length && (w.ctx.strokeStyle = Rt(r.webkitTextStrokeColor), w.ctx.lineWidth = r.webkitTextStrokeWidth, w.ctx.lineJoin = window.chrome ? "miter" : "round", w.ctx.strokeText(m.text, m.bounds.left, m.bounds.top + d)), w.ctx.strokeStyle = "", w.ctx.lineWidth = 0, w.ctx.lineJoin = "miter";
                  break;
              }
            });
          }), [
            2
            /*return*/
          ];
        });
      });
    }, e.prototype.renderReplacedElement = function(A, r, n) {
      if (n && A.intrinsicWidth > 0 && A.intrinsicHeight > 0) {
        var s = sl(A), a = nl(r);
        this.path(a), this.ctx.save(), this.ctx.clip(), this.ctx.drawImage(n, 0, 0, A.intrinsicWidth, A.intrinsicHeight, s.left, s.top, s.width, s.height), this.ctx.restore();
      }
    }, e.prototype.renderNodeContent = function(A) {
      return or(this, void 0, void 0, function() {
        var r, n, s, a, o, c, E, E, d, h, g, w, V, p, m, J, F, D, v, E, P, V, J;
        return er(this, function(Y) {
          switch (Y.label) {
            case 0:
              this.applyEffects(A.getEffects(
                4
                /* CONTENT */
              )), r = A.container, n = A.curves, s = r.styles, a = 0, o = r.textNodes, Y.label = 1;
            case 1:
              return a < o.length ? (c = o[a], [4, this.renderTextNode(c, s)]) : [3, 4];
            case 2:
              Y.sent(), Y.label = 3;
            case 3:
              return a++, [3, 1];
            case 4:
              if (!(r instanceof kh)) return [3, 8];
              Y.label = 5;
            case 5:
              return Y.trys.push([5, 7, , 8]), [4, this.context.cache.match(r.src)];
            case 6:
              return E = Y.sent(), this.renderReplacedElement(r, n, E), [3, 8];
            case 7:
              return Y.sent(), this.context.logger.error("Error loading image " + r.src), [3, 8];
            case 8:
              if (r instanceof Hh && this.renderReplacedElement(r, n, r.canvas), !(r instanceof Th)) return [3, 12];
              Y.label = 9;
            case 9:
              return Y.trys.push([9, 11, , 12]), [4, this.context.cache.match(r.svg)];
            case 10:
              return E = Y.sent(), this.renderReplacedElement(r, n, E), [3, 12];
            case 11:
              return Y.sent(), this.context.logger.error("Error loading svg " + r.svg.substring(0, 255)), [3, 12];
            case 12:
              return r instanceof Ph && r.tree ? (d = new e(this.context, {
                scale: this.options.scale,
                backgroundColor: r.backgroundColor,
                x: 0,
                y: 0,
                width: r.width,
                height: r.height
              }), [4, d.render(r.tree)]) : [3, 14];
            case 13:
              h = Y.sent(), r.width && r.height && this.ctx.drawImage(h, 0, 0, r.width, r.height, r.bounds.left, r.bounds.top, r.bounds.width, r.bounds.height), Y.label = 14;
            case 14:
              if (r instanceof Eu && (g = Math.min(r.bounds.width, r.bounds.height), r.type === Zo ? r.checked && (this.ctx.save(), this.path([
                new oe(r.bounds.left + g * 0.39363, r.bounds.top + g * 0.79),
                new oe(r.bounds.left + g * 0.16, r.bounds.top + g * 0.5549),
                new oe(r.bounds.left + g * 0.27347, r.bounds.top + g * 0.44071),
                new oe(r.bounds.left + g * 0.39694, r.bounds.top + g * 0.5649),
                new oe(r.bounds.left + g * 0.72983, r.bounds.top + g * 0.23),
                new oe(r.bounds.left + g * 0.84, r.bounds.top + g * 0.34085),
                new oe(r.bounds.left + g * 0.39363, r.bounds.top + g * 0.79)
              ]), this.ctx.fillStyle = Rt(hd), this.ctx.fill(), this.ctx.restore()) : r.type === Al && r.checked && (this.ctx.save(), this.ctx.beginPath(), this.ctx.arc(r.bounds.left + g / 2, r.bounds.top + g / 2, g / 4, 0, Math.PI * 2, !0), this.ctx.fillStyle = Rt(hd), this.ctx.fill(), this.ctx.restore())), NC(r) && r.value.length) {
                switch (w = this.createFontStyle(s), V = w[0], p = w[1], m = this.fontMetrics.getMetrics(V, p).baseline, this.ctx.font = V, this.ctx.fillStyle = Rt(s.color), this.ctx.textBaseline = "alphabetic", this.ctx.textAlign = MC(r.styles.textAlign), J = sl(r), F = 0, r.styles.textAlign) {
                  case 1:
                    F += J.width / 2;
                    break;
                  case 2:
                    F += J.width;
                    break;
                }
                D = J.add(F, 0, 0, -J.height / 2 + 1), this.ctx.save(), this.path([
                  new oe(J.left, J.top),
                  new oe(J.left + J.width, J.top),
                  new oe(J.left + J.width, J.top + J.height),
                  new oe(J.left, J.top + J.height)
                ]), this.ctx.clip(), this.renderTextWithLetterSpacing(new fa(r.value, D), s.letterSpacing, m), this.ctx.restore(), this.ctx.textBaseline = "alphabetic", this.ctx.textAlign = "left";
              }
              if (!Nt(
                r.styles.display,
                2048
                /* LIST_ITEM */
              )) return [3, 20];
              if (r.styles.listStyleImage === null) return [3, 19];
              if (v = r.styles.listStyleImage, v.type !== 0) return [3, 18];
              E = void 0, P = v.url, Y.label = 15;
            case 15:
              return Y.trys.push([15, 17, , 18]), [4, this.context.cache.match(P)];
            case 16:
              return E = Y.sent(), this.ctx.drawImage(E, r.bounds.left - (E.width + 10), r.bounds.top), [3, 18];
            case 17:
              return Y.sent(), this.context.logger.error("Error loading list-style-image " + P), [3, 18];
            case 18:
              return [3, 20];
            case 19:
              A.listValue && r.styles.listStyleType !== -1 && (V = this.createFontStyle(s)[0], this.ctx.font = V, this.ctx.fillStyle = Rt(s.color), this.ctx.textBaseline = "middle", this.ctx.textAlign = "right", J = new xn(r.bounds.left, r.bounds.top + ut(r.styles.paddingTop, r.bounds.width), r.bounds.width, Jf(s.lineHeight, s.fontSize.number) / 2 + 1), this.renderTextWithLetterSpacing(new fa(A.listValue, J), s.letterSpacing, Jf(s.lineHeight, s.fontSize.number) / 2 + 2), this.ctx.textBaseline = "bottom", this.ctx.textAlign = "left"), Y.label = 20;
            case 20:
              return [
                2
                /*return*/
              ];
          }
        });
      });
    }, e.prototype.renderStackContent = function(A) {
      return or(this, void 0, void 0, function() {
        var r, n, v, s, a, v, o, c, v, d, h, v, g, w, v, p, m, v, F, D, v;
        return er(this, function(E) {
          switch (E.label) {
            case 0:
              if (Nt(
                A.element.container.flags,
                16
                /* DEBUG_RENDER */
              ))
                debugger;
              return [4, this.renderNodeBackgroundAndBorders(A.element)];
            case 1:
              E.sent(), r = 0, n = A.negativeZIndex, E.label = 2;
            case 2:
              return r < n.length ? (v = n[r], [4, this.renderStack(v)]) : [3, 5];
            case 3:
              E.sent(), E.label = 4;
            case 4:
              return r++, [3, 2];
            case 5:
              return [4, this.renderNodeContent(A.element)];
            case 6:
              E.sent(), s = 0, a = A.nonInlineLevel, E.label = 7;
            case 7:
              return s < a.length ? (v = a[s], [4, this.renderNode(v)]) : [3, 10];
            case 8:
              E.sent(), E.label = 9;
            case 9:
              return s++, [3, 7];
            case 10:
              o = 0, c = A.nonPositionedFloats, E.label = 11;
            case 11:
              return o < c.length ? (v = c[o], [4, this.renderStack(v)]) : [3, 14];
            case 12:
              E.sent(), E.label = 13;
            case 13:
              return o++, [3, 11];
            case 14:
              d = 0, h = A.nonPositionedInlineLevel, E.label = 15;
            case 15:
              return d < h.length ? (v = h[d], [4, this.renderStack(v)]) : [3, 18];
            case 16:
              E.sent(), E.label = 17;
            case 17:
              return d++, [3, 15];
            case 18:
              g = 0, w = A.inlineLevel, E.label = 19;
            case 19:
              return g < w.length ? (v = w[g], [4, this.renderNode(v)]) : [3, 22];
            case 20:
              E.sent(), E.label = 21;
            case 21:
              return g++, [3, 19];
            case 22:
              p = 0, m = A.zeroOrAutoZIndexOrTransformedOrOpacity, E.label = 23;
            case 23:
              return p < m.length ? (v = m[p], [4, this.renderStack(v)]) : [3, 26];
            case 24:
              E.sent(), E.label = 25;
            case 25:
              return p++, [3, 23];
            case 26:
              F = 0, D = A.positiveZIndex, E.label = 27;
            case 27:
              return F < D.length ? (v = D[F], [4, this.renderStack(v)]) : [3, 30];
            case 28:
              E.sent(), E.label = 29;
            case 29:
              return F++, [3, 27];
            case 30:
              return [
                2
                /*return*/
              ];
          }
        });
      });
    }, e.prototype.mask = function(A) {
      this.ctx.beginPath(), this.ctx.moveTo(0, 0), this.ctx.lineTo(this.canvas.width, 0), this.ctx.lineTo(this.canvas.width, this.canvas.height), this.ctx.lineTo(0, this.canvas.height), this.ctx.lineTo(0, 0), this.formatPath(A.slice(0).reverse()), this.ctx.closePath();
    }, e.prototype.path = function(A) {
      this.ctx.beginPath(), this.formatPath(A), this.ctx.closePath();
    }, e.prototype.formatPath = function(A) {
      var r = this;
      A.forEach(function(n, s) {
        var a = Rr(n) ? n.start : n;
        s === 0 ? r.ctx.moveTo(a.x, a.y) : r.ctx.lineTo(a.x, a.y), Rr(n) && r.ctx.bezierCurveTo(n.startControl.x, n.startControl.y, n.endControl.x, n.endControl.y, n.end.x, n.end.y);
      });
    }, e.prototype.renderRepeat = function(A, r, n, s) {
      this.path(A), this.ctx.fillStyle = r, this.ctx.translate(n, s), this.ctx.fill(), this.ctx.translate(-n, -s);
    }, e.prototype.resizeImage = function(A, r, n) {
      var s;
      if (A.width === r && A.height === n)
        return A;
      var a = (s = this.canvas.ownerDocument) !== null && s !== void 0 ? s : document, o = a.createElement("canvas");
      o.width = Math.max(1, r), o.height = Math.max(1, n);
      var c = o.getContext("2d");
      return c.drawImage(A, 0, 0, A.width, A.height, 0, 0, r, n), o;
    }, e.prototype.renderBackgroundImage = function(A) {
      return or(this, void 0, void 0, function() {
        var r, n, s, a, o, c;
        return er(this, function(d) {
          switch (d.label) {
            case 0:
              r = A.styles.backgroundImage.length - 1, n = function(h) {
                var g, w, p, lA, X, AA, k, U, O, m, lA, X, AA, k, U, F, D, v, E, P, V, J, Y, W, O, q, lA, I, Q, k, U, R, X, AA, z, aA, rA, QA, b, T, _, j;
                return er(this, function($) {
                  switch ($.label) {
                    case 0:
                      if (h.type !== 0) return [3, 5];
                      g = void 0, w = h.url, $.label = 1;
                    case 1:
                      return $.trys.push([1, 3, , 4]), [4, s.context.cache.match(w)];
                    case 2:
                      return g = $.sent(), [3, 4];
                    case 3:
                      return $.sent(), s.context.logger.error("Error loading background-image " + w), [3, 4];
                    case 4:
                      return g && (p = Tc(A, r, [
                        g.width,
                        g.height,
                        g.width / g.height
                      ]), lA = p[0], X = p[1], AA = p[2], k = p[3], U = p[4], O = s.ctx.createPattern(s.resizeImage(g, k, U), "repeat"), s.renderRepeat(lA, O, X, AA)), [3, 6];
                    case 5:
                      y5(h) ? (m = Tc(A, r, [null, null, null]), lA = m[0], X = m[1], AA = m[2], k = m[3], U = m[4], F = p5(h.angle, k, U), D = F[0], v = F[1], E = F[2], P = F[3], V = F[4], J = document.createElement("canvas"), J.width = k, J.height = U, Y = J.getContext("2d"), W = Y.createLinearGradient(v, P, E, V), zf(h.stops, D).forEach(function(uA) {
                        return W.addColorStop(uA.stop, Rt(uA.color));
                      }), Y.fillStyle = W, Y.fillRect(0, 0, k, U), k > 0 && U > 0 && (O = s.ctx.createPattern(J, "repeat"), s.renderRepeat(lA, O, X, AA))) : C5(h) && (q = Tc(A, r, [
                        null,
                        null,
                        null
                      ]), lA = q[0], I = q[1], Q = q[2], k = q[3], U = q[4], R = h.position.length === 0 ? [Fu] : h.position, X = ut(R[0], k), AA = ut(R[R.length - 1], U), z = B5(h, X, AA, k, U), aA = z[0], rA = z[1], aA > 0 && rA > 0 && (QA = s.ctx.createRadialGradient(I + X, Q + AA, 0, I + X, Q + AA, aA), zf(h.stops, aA * 2).forEach(function(uA) {
                        return QA.addColorStop(uA.stop, Rt(uA.color));
                      }), s.path(lA), s.ctx.fillStyle = QA, aA !== rA ? (b = A.bounds.left + 0.5 * A.bounds.width, T = A.bounds.top + 0.5 * A.bounds.height, _ = rA / aA, j = 1 / _, s.ctx.save(), s.ctx.translate(b, T), s.ctx.transform(1, 0, 0, _, 0, 0), s.ctx.translate(-b, -T), s.ctx.fillRect(I, j * (Q - T) + T, k, U * j), s.ctx.restore()) : s.ctx.fill())), $.label = 6;
                    case 6:
                      return r--, [
                        2
                        /*return*/
                      ];
                  }
                });
              }, s = this, a = 0, o = A.styles.backgroundImage.slice(0).reverse(), d.label = 1;
            case 1:
              return a < o.length ? (c = o[a], [5, n(c)]) : [3, 4];
            case 2:
              d.sent(), d.label = 3;
            case 3:
              return a++, [3, 1];
            case 4:
              return [
                2
                /*return*/
              ];
          }
        });
      });
    }, e.prototype.renderSolidBorder = function(A, r, n) {
      return or(this, void 0, void 0, function() {
        return er(this, function(s) {
          return this.path(Ud(n, r)), this.ctx.fillStyle = Rt(A), this.ctx.fill(), [
            2
            /*return*/
          ];
        });
      });
    }, e.prototype.renderDoubleBorder = function(A, r, n, s) {
      return or(this, void 0, void 0, function() {
        var a, o;
        return er(this, function(c) {
          switch (c.label) {
            case 0:
              return r < 3 ? [4, this.renderSolidBorder(A, n, s)] : [3, 2];
            case 1:
              return c.sent(), [
                2
                /*return*/
              ];
            case 2:
              return a = QC(s, n), this.path(a), this.ctx.fillStyle = Rt(A), this.ctx.fill(), o = UC(s, n), this.path(o), this.ctx.fill(), [
                2
                /*return*/
              ];
          }
        });
      });
    }, e.prototype.renderNodeBackgroundAndBorders = function(A) {
      return or(this, void 0, void 0, function() {
        var r, n, s, a, o, c, d, h, g = this;
        return er(this, function(w) {
          switch (w.label) {
            case 0:
              return this.applyEffects(A.getEffects(
                2
                /* BACKGROUND_BORDERS */
              )), r = A.container.styles, n = !ts(r.backgroundColor) || r.backgroundImage.length, s = [
                { style: r.borderTopStyle, color: r.borderTopColor, width: r.borderTopWidth },
                { style: r.borderRightStyle, color: r.borderRightColor, width: r.borderRightWidth },
                { style: r.borderBottomStyle, color: r.borderBottomColor, width: r.borderBottomWidth },
                { style: r.borderLeftStyle, color: r.borderLeftColor, width: r.borderLeftWidth }
              ], a = _C(li(r.backgroundClip, 0), A.curves), n || r.boxShadow.length ? (this.ctx.save(), this.path(a), this.ctx.clip(), ts(r.backgroundColor) || (this.ctx.fillStyle = Rt(r.backgroundColor), this.ctx.fill()), [4, this.renderBackgroundImage(A.container)]) : [3, 2];
            case 1:
              w.sent(), this.ctx.restore(), r.boxShadow.slice(0).reverse().forEach(function(p) {
                g.ctx.save();
                var m = rl(A.curves), F = p.inset ? 0 : HC, D = bC(m, -F + (p.inset ? 1 : -1) * p.spread.number, (p.inset ? 1 : -1) * p.spread.number, p.spread.number * (p.inset ? -2 : 2), p.spread.number * (p.inset ? -2 : 2));
                p.inset ? (g.path(m), g.ctx.clip(), g.mask(D)) : (g.mask(m), g.ctx.clip(), g.path(D)), g.ctx.shadowOffsetX = p.offsetX.number + F, g.ctx.shadowOffsetY = p.offsetY.number, g.ctx.shadowColor = Rt(p.color), g.ctx.shadowBlur = p.blur.number, g.ctx.fillStyle = p.inset ? Rt(p.color) : "rgba(0,0,0,1)", g.ctx.fill(), g.ctx.restore();
              }), w.label = 2;
            case 2:
              o = 0, c = 0, d = s, w.label = 3;
            case 3:
              return c < d.length ? (h = d[c], h.style !== 0 && !ts(h.color) && h.width > 0 ? h.style !== 2 ? [3, 5] : [4, this.renderDashedDottedBorder(
                h.color,
                h.width,
                o,
                A.curves,
                2
                /* DASHED */
              )] : [3, 11]) : [3, 13];
            case 4:
              return w.sent(), [3, 11];
            case 5:
              return h.style !== 3 ? [3, 7] : [4, this.renderDashedDottedBorder(
                h.color,
                h.width,
                o,
                A.curves,
                3
                /* DOTTED */
              )];
            case 6:
              return w.sent(), [3, 11];
            case 7:
              return h.style !== 4 ? [3, 9] : [4, this.renderDoubleBorder(h.color, h.width, o, A.curves)];
            case 8:
              return w.sent(), [3, 11];
            case 9:
              return [4, this.renderSolidBorder(h.color, o, A.curves)];
            case 10:
              w.sent(), w.label = 11;
            case 11:
              o++, w.label = 12;
            case 12:
              return c++, [3, 3];
            case 13:
              return [
                2
                /*return*/
              ];
          }
        });
      });
    }, e.prototype.renderDashedDottedBorder = function(A, r, n, s, a) {
      return or(this, void 0, void 0, function() {
        var o, c, d, h, g, w, p, m, F, D, v, E, P, V, J, Y, J, Y;
        return er(this, function(W) {
          return this.ctx.save(), o = LC(s, n), c = Ud(s, n), a === 2 && (this.path(c), this.ctx.clip()), Rr(c[0]) ? (d = c[0].start.x, h = c[0].start.y) : (d = c[0].x, h = c[0].y), Rr(c[1]) ? (g = c[1].end.x, w = c[1].end.y) : (g = c[1].x, w = c[1].y), n === 0 || n === 2 ? p = Math.abs(d - g) : p = Math.abs(h - w), this.ctx.beginPath(), a === 3 ? this.formatPath(o) : this.formatPath(c.slice(0, 2)), m = r < 3 ? r * 3 : r * 2, F = r < 3 ? r * 2 : r, a === 3 && (m = r, F = r), D = !0, p <= m * 2 ? D = !1 : p <= m * 2 + F ? (v = p / (2 * m + F), m *= v, F *= v) : (E = Math.floor((p + F) / (m + F)), P = (p - E * m) / (E - 1), V = (p - (E + 1) * m) / E, F = V <= 0 || Math.abs(F - P) < Math.abs(F - V) ? P : V), D && (a === 3 ? this.ctx.setLineDash([0, m + F]) : this.ctx.setLineDash([m, F])), a === 3 ? (this.ctx.lineCap = "round", this.ctx.lineWidth = r) : this.ctx.lineWidth = r * 2 + 1.1, this.ctx.strokeStyle = Rt(A), this.ctx.stroke(), this.ctx.setLineDash([]), a === 2 && (Rr(c[0]) && (J = c[3], Y = c[0], this.ctx.beginPath(), this.formatPath([new oe(J.end.x, J.end.y), new oe(Y.start.x, Y.start.y)]), this.ctx.stroke()), Rr(c[1]) && (J = c[1], Y = c[2], this.ctx.beginPath(), this.formatPath([new oe(J.end.x, J.end.y), new oe(Y.start.x, Y.start.y)]), this.ctx.stroke())), this.ctx.restore(), [
            2
            /*return*/
          ];
        });
      });
    }, e.prototype.render = function(A) {
      return or(this, void 0, void 0, function() {
        var r;
        return er(this, function(n) {
          switch (n.label) {
            case 0:
              return this.options.backgroundColor && (this.ctx.fillStyle = Rt(this.options.backgroundColor), this.ctx.fillRect(this.options.x, this.options.y, this.options.width, this.options.height)), r = FC(A), [4, this.renderStack(r)];
            case 1:
              return n.sent(), this.applyEffects([]), [2, this.canvas];
          }
        });
      });
    }, e;
  }(eg)
), NC = function(t) {
  return t instanceof Mh || t instanceof _h ? !0 : t instanceof Eu && t.type !== Al && t.type !== Zo;
}, _C = function(t, e) {
  switch (t) {
    case 0:
      return rl(e);
    case 2:
      return wC(e);
    case 1:
    default:
      return nl(e);
  }
}, MC = function(t) {
  switch (t) {
    case 1:
      return "center";
    case 2:
      return "right";
    case 0:
    default:
      return "left";
  }
}, PC = ["-apple-system", "system-ui"], OC = function(t) {
  return /iPhone OS 15_(0|1)/.test(window.navigator.userAgent) ? t.filter(function(e) {
    return PC.indexOf(e) === -1;
  }) : t;
}, RC = (
  /** @class */
  function(t) {
    tn(e, t);
    function e(A, r) {
      var n = t.call(this, A, r) || this;
      return n.canvas = r.canvas ? r.canvas : document.createElement("canvas"), n.ctx = n.canvas.getContext("2d"), n.options = r, n.canvas.width = Math.floor(r.width * r.scale), n.canvas.height = Math.floor(r.height * r.scale), n.canvas.style.width = r.width + "px", n.canvas.style.height = r.height + "px", n.ctx.scale(n.options.scale, n.options.scale), n.ctx.translate(-r.x, -r.y), n.context.logger.debug("EXPERIMENTAL ForeignObject renderer initialized (" + r.width + "x" + r.height + " at " + r.x + "," + r.y + ") with scale " + r.scale), n;
    }
    return e.prototype.render = function(A) {
      return or(this, void 0, void 0, function() {
        var r, n;
        return er(this, function(s) {
          switch (s.label) {
            case 0:
              return r = fu(this.options.width * this.options.scale, this.options.height * this.options.scale, this.options.scale, this.options.scale, A), [4, KC(r)];
            case 1:
              return n = s.sent(), this.options.backgroundColor && (this.ctx.fillStyle = Rt(this.options.backgroundColor), this.ctx.fillRect(0, 0, this.options.width * this.options.scale, this.options.height * this.options.scale)), this.ctx.drawImage(n, -this.options.x * this.options.scale, -this.options.y * this.options.scale), [2, this.canvas];
          }
        });
      });
    }, e;
  }(eg)
), KC = function(t) {
  return new Promise(function(e, A) {
    var r = new Image();
    r.onload = function() {
      e(r);
    }, r.onerror = A, r.src = "data:image/svg+xml;charset=utf-8," + encodeURIComponent(new XMLSerializer().serializeToString(t));
  });
}, VC = (
  /** @class */
  function() {
    function t(e) {
      var A = e.id, r = e.enabled;
      this.id = A, this.enabled = r, this.start = Date.now();
    }
    return t.prototype.debug = function() {
      for (var e = [], A = 0; A < arguments.length; A++)
        e[A] = arguments[A];
      this.enabled && (typeof window < "u" && window.console && typeof console.debug == "function" ? console.debug.apply(console, ho([this.id, this.getTime() + "ms"], e)) : this.info.apply(this, e));
    }, t.prototype.getTime = function() {
      return Date.now() - this.start;
    }, t.prototype.info = function() {
      for (var e = [], A = 0; A < arguments.length; A++)
        e[A] = arguments[A];
      this.enabled && typeof window < "u" && window.console && typeof console.info == "function" && console.info.apply(console, ho([this.id, this.getTime() + "ms"], e));
    }, t.prototype.warn = function() {
      for (var e = [], A = 0; A < arguments.length; A++)
        e[A] = arguments[A];
      this.enabled && (typeof window < "u" && window.console && typeof console.warn == "function" ? console.warn.apply(console, ho([this.id, this.getTime() + "ms"], e)) : this.info.apply(this, e));
    }, t.prototype.error = function() {
      for (var e = [], A = 0; A < arguments.length; A++)
        e[A] = arguments[A];
      this.enabled && (typeof window < "u" && window.console && typeof console.error == "function" ? console.error.apply(console, ho([this.id, this.getTime() + "ms"], e)) : this.info.apply(this, e));
    }, t.instances = {}, t;
  }()
), GC = (
  /** @class */
  function() {
    function t(e, A) {
      var r;
      this.windowBounds = A, this.instanceName = "#" + t.instanceCount++, this.logger = new VC({ id: this.instanceName, enabled: e.logging }), this.cache = (r = e.cache) !== null && r !== void 0 ? r : new cC(this, e);
    }
    return t.instanceCount = 1, t;
  }()
), tg = function(t, e) {
  return e === void 0 && (e = {}), jC(t, e);
};
typeof window < "u" && zh.setContext(window);
var jC = function(t, e) {
  return or(void 0, void 0, void 0, function() {
    var A, r, n, s, a, o, c, d, h, g, w, p, m, F, D, v, E, P, V, J, W, Y, W, O, q, lA, I, Q, k, U, R, X, AA, z, aA, rA, QA, b, T, _;
    return er(this, function(j) {
      switch (j.label) {
        case 0:
          if (!t || typeof t != "object")
            return [2, Promise.reject("Invalid element provided as first argument")];
          if (A = t.ownerDocument, !A)
            throw new Error("Element is not attached to a Document");
          if (r = A.defaultView, !r)
            throw new Error("Document is not attached to a Window");
          return n = {
            allowTaint: (O = e.allowTaint) !== null && O !== void 0 ? O : !1,
            imageTimeout: (q = e.imageTimeout) !== null && q !== void 0 ? q : 15e3,
            proxy: e.proxy,
            useCORS: (lA = e.useCORS) !== null && lA !== void 0 ? lA : !1
          }, s = Jc({ logging: (I = e.logging) !== null && I !== void 0 ? I : !0, cache: e.cache }, n), a = {
            windowWidth: (Q = e.windowWidth) !== null && Q !== void 0 ? Q : r.innerWidth,
            windowHeight: (k = e.windowHeight) !== null && k !== void 0 ? k : r.innerHeight,
            scrollX: (U = e.scrollX) !== null && U !== void 0 ? U : r.pageXOffset,
            scrollY: (R = e.scrollY) !== null && R !== void 0 ? R : r.pageYOffset
          }, o = new xn(a.scrollX, a.scrollY, a.windowWidth, a.windowHeight), c = new GC(s, o), d = (X = e.foreignObjectRendering) !== null && X !== void 0 ? X : !1, h = {
            allowTaint: (AA = e.allowTaint) !== null && AA !== void 0 ? AA : !1,
            onclone: e.onclone,
            ignoreElements: e.ignoreElements,
            inlineImages: d,
            copyStyles: d
          }, c.logger.debug("Starting document clone with size " + o.width + "x" + o.height + " scrolled to " + -o.left + "," + -o.top), g = new bd(c, t, h), w = g.clonedReferenceElement, w ? [4, g.toIFrame(A, o)] : [2, Promise.reject("Unable to find element in cloned iframe")];
        case 1:
          return p = j.sent(), m = xu(w) || Wy(w) ? bw(w.ownerDocument) : cl(c, w), F = m.width, D = m.height, v = m.left, E = m.top, P = qC(c, w, e.backgroundColor), V = {
            canvas: e.canvas,
            backgroundColor: P,
            scale: (aA = (z = e.scale) !== null && z !== void 0 ? z : r.devicePixelRatio) !== null && aA !== void 0 ? aA : 1,
            x: ((rA = e.x) !== null && rA !== void 0 ? rA : 0) + v,
            y: ((QA = e.y) !== null && QA !== void 0 ? QA : 0) + E,
            width: (b = e.width) !== null && b !== void 0 ? b : Math.ceil(F),
            height: (T = e.height) !== null && T !== void 0 ? T : Math.ceil(D)
          }, d ? (c.logger.debug("Document cloned, using foreign object rendering"), W = new RC(c, V), [4, W.render(w)]) : [3, 3];
        case 2:
          return J = j.sent(), [3, 5];
        case 3:
          return c.logger.debug("Document cloned, element located at " + v + "," + E + " with size " + F + "x" + D + " using computed rendering"), c.logger.debug("Starting DOM parsing"), Y = Rh(c, w), P === Y.styles.backgroundColor && (Y.styles.backgroundColor = En.TRANSPARENT), c.logger.debug("Starting renderer for element at " + V.x + "," + V.y + " with size " + V.width + "x" + V.height), W = new TC(c, V), [4, W.render(Y)];
        case 4:
          J = j.sent(), j.label = 5;
        case 5:
          return (!((_ = e.removeContainer) !== null && _ !== void 0) || _) && (bd.destroy(p) || c.logger.error("Cannot detach cloned iframe as it is not in the DOM anymore")), c.logger.debug("Finished rendering"), [2, J];
      }
    });
  });
}, qC = function(t, e, A) {
  var r = e.ownerDocument, n = r.documentElement ? ca(t, getComputedStyle(r.documentElement).backgroundColor) : En.TRANSPARENT, s = r.body ? ca(t, getComputedStyle(r.body).backgroundColor) : En.TRANSPARENT, a = typeof A == "string" ? ca(t, A) : A === null ? En.TRANSPARENT : 4294967295;
  return e === r.documentElement ? ts(n) ? ts(s) ? a : s : n : a;
};
const WC = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
  __proto__: null,
  default: tg
}, Symbol.toStringTag, { value: "Module" })), XC = { class: "gantt-body" }, zC = ["title"], YC = {
  width: "16",
  height: "16",
  viewBox: "0 0 24 24",
  fill: "none",
  stroke: "currentColor",
  "stroke-width": "2.5"
}, JC = {
  key: 0,
  points: "15,18 9,12 15,6"
}, $C = {
  key: 1,
  points: "9,18 15,12 9,6"
}, si = 1160, _o = 320, ZC = /* @__PURE__ */ vr({
  __name: "GanttChart",
  props: {
    tasks: { default: () => [] },
    milestones: { default: () => [] },
    onTaskDoubleClick: { type: Function, default: void 0 },
    editComponent: { default: void 0 },
    useDefaultDrawer: { type: Boolean, default: !0 },
    onTaskDelete: { type: Function, default: void 0 },
    onMilestoneSave: { type: Function, default: void 0 },
    onMilestoneDelete: { type: Function, default: void 0 },
    onTaskUpdate: { type: Function, default: void 0 },
    onTaskAdd: { type: Function, default: void 0 },
    onMilestoneIconChange: { type: Function, default: void 0 },
    toolbarConfig: { default: () => ({}) },
    showToolbar: { type: Boolean, default: !0 },
    onAddTask: { type: Function, default: void 0 },
    onAddMilestone: { type: Function, default: void 0 },
    onTodayLocate: { type: Function, default: void 0 },
    onExportCsv: { type: Function, default: void 0 },
    onExportPdf: { type: Function, default: void 0 },
    onLanguageChange: { type: Function, default: void 0 },
    onThemeChange: { type: Function, default: void 0 },
    onFullscreenChange: { type: Function, default: void 0 },
    localeMessages: { default: void 0 }
  },
  emits: [
    "taskbar-drag-end",
    "taskbar-resize-end",
    "milestone-drag-end",
    "timer-started",
    "timer-stopped",
    "predecessor-added",
    "successor-added",
    "task-deleted",
    "task-added",
    "task-updated"
  ],
  setup(t, { emit: e }) {
    const A = t, r = e, { showMessage: n } = Sd(), s = IA(320), a = IA(null), o = IA(Xe.DAY), c = IA(si), d = IA(_o), h = IA(_o), g = IA(si), w = IA(si), p = (gA) => gA < d.value ? d.value : gA > w.value ? w.value : Math.max(d.value, gA), m = IA(!1);
    function F(gA) {
      if (gA.target.closest(".task-list-toggle"))
        return;
      gA.preventDefault(), gA.stopPropagation(), m.value = !0;
      const Ae = gA.clientX, JA = s.value, LA = document.querySelector(".task-list-body");
      if (!LA) return;
      const ae = LA.getBoundingClientRect();
      c.value = ae.width, g.value = window.innerWidth * 0.8 - 6, w.value = Math.min(g.value, c.value), window.dispatchEvent(new CustomEvent("splitter-drag-start")), document.body.style.userSelect = "none", document.body.style.webkitUserSelect = "none", document.body.style.cursor = "col-resize";
      function He($A) {
        if (!m.value) return;
        $A.preventDefault(), $A.stopPropagation();
        const ee = $A.clientX - Ae, qA = JA + ee, Ne = p(qA);
        s.value = Ne;
      }
      function ve() {
        m.value = !1, window.dispatchEvent(new CustomEvent("splitter-drag-end")), document.body.style.userSelect = "", document.body.style.webkitUserSelect = "", document.body.style.cursor = "", c.value = si, d.value = _o, g.value = si, w.value = si, h.value = _o, window.removeEventListener("mousemove", He), window.removeEventListener("mouseup", ve);
      }
      window.addEventListener("mousemove", He), window.addEventListener("mouseup", ve);
    }
    const D = IA(!0), v = IA(!1), E = IA(""), P = () => {
      v.value || (v.value = !0, D.value ? E.value = "impact-left" : E.value = "impact-right", setTimeout(() => {
        D.value = !D.value;
      }, 200), setTimeout(() => {
        v.value = !1, E.value = "", pt(() => {
          window.dispatchEvent(
            new CustomEvent("timeline-container-resized", {
              detail: { source: "manual-task-list-toggle" }
            })
          );
        });
      }, 400));
    }, V = (gA) => {
      D.value = gA.detail, pt(() => {
        window.dispatchEvent(
          new CustomEvent("timeline-container-resized", {
            detail: { source: "task-list-toggle" }
          })
        );
      });
    };
    function J(gA) {
      r("taskbar-drag-end", gA.detail);
    }
    function Y(gA) {
      r("taskbar-resize-end", gA.detail);
    }
    function W(gA) {
      r("milestone-drag-end", gA.detail);
    }
    Sr(() => {
      window.addEventListener("taskbar-drag-end", J), window.addEventListener("taskbar-resize-end", Y), window.addEventListener("milestone-drag-end", W);
    }), wr(() => {
      window.removeEventListener("taskbar-drag-end", J), window.removeEventListener("taskbar-resize-end", Y), window.removeEventListener("milestone-drag-end", W);
    });
    const O = (gA) => {
      const _A = (Ae, JA, LA) => {
        for (const ae of Ae) {
          if (ae.id === JA)
            return ae.collapsed = LA, !0;
          if (ae.children && ae.children.length > 0 && _A(ae.children, JA, LA))
            return !0;
        }
        return !1;
      };
      A.tasks && _A(A.tasks, gA.id, gA.collapsed ?? !1), q.value++;
    }, q = IA(0), lA = () => {
      const gA = [], _A = (Ae) => {
        Ae.forEach((JA) => {
          gA.push(JA), JA.children && JA.children.length > 0 && _A(JA.children);
        });
      };
      A.tasks && _A(A.tasks), A.milestones && gA.push(...A.milestones), window.dispatchEvent(new CustomEvent("task-list-updated", { detail: gA }));
    }, I = () => {
      lA();
    };
    Je(
      [() => A.tasks, () => A.milestones],
      () => {
        pt(() => {
          I();
        });
      },
      { deep: !0, immediate: !0 }
    ), Sr(() => {
      window.addEventListener("toggle-task-list", V), window.addEventListener("fullscreen-toggle", $), window.addEventListener("task-updated", hA), window.addEventListener("task-added", jA), window.addEventListener("milestone-icon-changed", VA), window.addEventListener("milestone-deleted", YA), window.addEventListener("milestone-data-changed", nA), window.addEventListener("request-task-list", lA), window.addEventListener("resize", DA), window.addEventListener("context-menu", te), pt(() => {
        a.value && typeof a.value.scrollToTodayCenter == "function" && a.value.scrollToTodayCenter();
      });
    }), wr(() => {
      m.value = !1, window.removeEventListener("toggle-task-list", V), window.removeEventListener("fullscreen-toggle", $), window.removeEventListener("task-updated", hA), window.removeEventListener("task-added", jA), window.removeEventListener(
        "milestone-icon-changed",
        VA
      ), window.removeEventListener("milestone-deleted", YA), window.removeEventListener("milestone-data-changed", nA), window.removeEventListener("request-task-list", lA), window.removeEventListener("resize", DA), window.removeEventListener("context-menu", te);
    });
    const Q = IA(!1), { t: k, locale: U } = In(), R = pe(() => k.value.collapseTaskList), X = pe(() => k.value.expandTaskList), AA = pe(() => {
      const gA = [];
      if (A.milestones && A.milestones.length > 0) {
        const _A = {
          id: -1,
          name: k.value.milestoneGroup,
          startDate: "",
          endDate: "",
          type: "milestone-group",
          children: A.milestones,
          isParent: !0,
          collapsed: !1
        };
        gA.push(_A);
      }
      return A.tasks && A.tasks.length > 0 && gA.push(...A.tasks), gA;
    }), z = pe(() => {
      q.value >= 0;
      const gA = [];
      if (A.milestones && A.milestones.length > 0) {
        const _A = {
          id: -1,
          name: k.value.milestoneGroup,
          startDate: "",
          endDate: "",
          type: "milestone-group",
          children: A.milestones,
          isParent: !0,
          collapsed: !1
        };
        gA.push(_A);
      }
      if (A.tasks && A.tasks.length > 0) {
        const _A = ($A) => {
          const ee = [], qA = [];
          return $A.forEach((Ne) => {
            if (Ne.startDate && ee.push(Ne.startDate), Ne.endDate && qA.push(Ne.endDate), Ne.children && Ne.children.length > 0) {
              const it = _A(Ne.children);
              ee.push(...it.starts), qA.push(...it.ends);
            }
          }), { starts: ee, ends: qA };
        }, Ae = ($A) => {
          if (!$A.children || $A.children.length === 0)
            return {
              startDate: $A.startDate || "",
              endDate: $A.endDate || ""
            };
          const { starts: ee, ends: qA } = _A($A.children);
          if (ee.length === 0 || qA.length === 0)
            return {
              startDate: $A.startDate || "",
              endDate: $A.endDate || ""
            };
          const Ne = ee.reduce((ze, qe) => new Date(qe) < new Date(ze) ? qe : ze), it = qA.reduce((ze, qe) => new Date(qe) > new Date(ze) ? qe : ze);
          return { startDate: Ne, endDate: it };
        }, JA = ($A) => $A.map((ee) => {
          let qA = { ...ee };
          ee.children && ee.children.length > 0 && (qA.children = JA(ee.children));
          const Ne = ee.type === "story" || qA.children && qA.children.length > 0;
          if (qA.isParent = Ne, Ne && qA.children && qA.children.length > 0) {
            const { startDate: it, endDate: ze } = Ae(qA);
            qA = {
              ...qA,
              startDate: it,
              endDate: ze
            };
          }
          return qA;
        }), LA = ($A, ee = 0) => {
          const qA = [];
          return $A.forEach((Ne) => {
            const it = {
              ...Ne,
              level: ee
            };
            if (qA.push(it), Ne.children && Ne.children.length > 0 && !Ne.collapsed) {
              const ze = LA(Ne.children, ee + 1);
              qA.push(...ze);
            }
          }), qA;
        }, ae = AA.value.filter(($A) => $A.type !== "milestone-group"), He = JA(ae), ve = LA(He);
        gA.push(...ve);
      }
      return gA;
    }), aA = pe(() => {
      const gA = ($A) => {
        let ee = [];
        return $A.forEach((qA) => {
          ee.push(qA), qA.children && qA.children.length > 0 && (ee = ee.concat(gA(qA.children)));
        }), ee;
      };
      let _A = [];
      A.tasks && (_A = _A.concat(gA(A.tasks))), A.milestones && (_A = _A.concat(A.milestones));
      const Ae = _A.map(($A) => $A.startDate).filter(Boolean).map(($A) => new Date($A)), JA = _A.map(($A) => $A.endDate).filter(Boolean).map(($A) => new Date($A));
      if (Ae.length === 0 || JA.length === 0) {
        const $A = /* @__PURE__ */ new Date(), ee = new Date($A.getFullYear(), $A.getMonth() - 6, 1), qA = new Date($A.getFullYear(), $A.getMonth() + 6 + 1, 0);
        return { min: ee, max: qA };
      }
      const LA = new Date(Math.min(...Ae.map(($A) => $A.getTime()))), ae = new Date(Math.max(...JA.map(($A) => $A.getTime())));
      let He = new Date(LA.getFullYear(), LA.getMonth() - 6, 1), ve = new Date(ae.getFullYear(), ae.getMonth() + 6 + 1, 0);
      return o.value === Xe.WEEK ? (He = new Date(LA.getFullYear() - 1, LA.getMonth(), 1), ve = new Date(ae.getFullYear() + 1, ae.getMonth() + 1, 0)) : o.value === Xe.MONTH && (He = new Date(LA.getFullYear() - 2, LA.getMonth(), 1), ve = new Date(ae.getFullYear() + 2, ae.getMonth() + 1, 0)), { min: He, max: ve };
    }), rA = () => {
      if (A.onExportCsv && typeof A.onExportCsv == "function") {
        A.onExportCsv() === !1 && T();
        return;
      }
      T();
    }, QA = (gA) => {
      o.value = gA, a.value && a.value.updateTimeScale(gA);
    }, b = (gA) => {
      pt(() => {
        const _A = new CustomEvent("timeline-scale-updated", { detail: gA });
        window.dispatchEvent(_A);
      });
    }, T = () => {
      try {
        const gA = [];
        A.tasks && A.tasks.length > 0 && gA.push(...A.tasks), A.milestones && A.milestones.length > 0 && gA.push(...A.milestones);
        const JA = "\uFEFF" + _(gA), LA = new Blob([JA], {
          type: "text/csv;charset=utf-8;"
        }), ae = document.createElement("a"), He = URL.createObjectURL(LA), $A = `gantt-tasks-${(/* @__PURE__ */ new Date()).toISOString().split("T")[0]}.csv`;
        ae.setAttribute("href", He), ae.setAttribute("download", $A), ae.style.visibility = "hidden", document.body.appendChild(ae), ae.click(), document.body.removeChild(ae), URL.revokeObjectURL(He);
      } catch (gA) {
        console.error("CSV导出失败:", gA), n("CSV导出失败", "error", { closable: !1 });
      }
    }, _ = (gA) => {
      const _A = k.value.csvHeaders, Ae = [
        _A.id,
        _A.taskName,
        _A.predecessor,
        _A.assignee,
        _A.startDate,
        _A.endDate,
        _A.estimatedHours,
        _A.actualHours,
        _A.progress,
        _A.type,
        _A.description
      ], JA = (ve) => {
        if (ve == null)
          return "";
        const $A = String(ve);
        return $A.includes(",") || $A.includes('"') || $A.includes(`
`) || $A.includes("\r") ? `"${$A.replace(/"/g, '""')}"` : $A;
      }, LA = (ve) => {
        const $A = [];
        return ve.forEach((ee) => {
          $A.push({
            id: ee.id,
            name: ee.name || "",
            predecessor: _c(ee.predecessor),
            assignee: ee.assignee || "",
            startDate: ee.startDate || "",
            endDate: ee.endDate || "",
            estimatedHours: ee.estimatedHours || "",
            actualHours: ee.actualHours || "",
            progress: ee.progress !== void 0 ? `${ee.progress}%` : "",
            type: ee.type || "",
            description: ee.description || ""
          }), ee.children && ee.children.length > 0 && $A.push(...LA(ee.children));
        }), $A;
      }, ae = LA(gA);
      return [
        // 头部行 - 也需要进行转义处理
        Ae.map((ve) => JA(ve)).join(","),
        // 数据行
        ...ae.map((ve) => [
          JA(ve.id),
          JA(ve.name),
          JA(_c(ve.predecessor)),
          JA(ve.assignee),
          JA(ve.startDate),
          JA(ve.endDate),
          JA(ve.estimatedHours),
          JA(ve.actualHours),
          JA(ve.progress),
          JA(ve.type),
          JA(ve.description)
        ].join(","))
      ].join(`
`);
    }, j = async () => {
      try {
        const gA = k.value.pdfExportLoading, _A = k.value.pdfExportTitle, Ae = k.value.pdfExportDate, JA = document.createElement("div");
        JA.innerHTML = `
      <div style="position: fixed; top: 0; left: 0; width: 100%; height: 100%;
                  background: rgba(0,0,0,0.5); display: flex; align-items: center;
                  justify-content: center; z-index: 10000; color: white; font-size: 16px;">
        ${gA}
      </div>
    `, document.body.appendChild(JA);
        const LA = document.querySelector(".gantt-body");
        if (!LA)
          throw new Error("找不到甘特图元素");
        const ae = {
          overflow: LA.style.overflow,
          height: LA.style.height
        };
        LA.style.overflow = "visible", LA.style.height = "auto";
        const He = await tg(LA, {
          allowTaint: !0,
          useCORS: !0,
          scale: 2,
          // 提高清晰度
          width: LA.scrollWidth,
          height: LA.scrollHeight,
          backgroundColor: "#ffffff"
        });
        LA.style.overflow = ae.overflow, LA.style.height = ae.height;
        const ve = He.toDataURL("image/png"), $A = new Fe({
          orientation: "landscape",
          // 横向布局更适合甘特图
          unit: "mm",
          format: "a4"
        }), ee = $A.internal.pageSize.getWidth(), qA = $A.internal.pageSize.getHeight(), Ne = He.width, it = He.height, ze = Math.min(ee / Ne, qA / it), qe = Ne * ze, rt = it * ze, _t = (ee - qe) / 2, Gr = (qA - rt) / 2;
        $A.setFontSize(16), $A.text(_A, ee / 2, 15, { align: "center" }), $A.setFontSize(10);
        const lr = (/* @__PURE__ */ new Date()).toLocaleDateString(U.value);
        if ($A.text(`${Ae}: ${lr}`, ee - 10, 10, { align: "right" }), $A.addImage(ve, "PNG", _t, Gr + 10, qe, rt - 15), rt > qA - 30) {
          const nr = Math.ceil(rt / (qA - 30));
          for (let Vt = 1; Vt < nr; Vt++) {
            $A.addPage();
            const cr = -Vt * (qA - 30);
            $A.addImage(ve, "PNG", _t, Gr + 10 + cr, qe, rt - 15);
          }
        }
        const Xt = `gantt-chart-${(/* @__PURE__ */ new Date()).toISOString().split("T")[0]}.pdf`;
        $A.save(Xt), JA && JA.parentNode && JA.parentNode.removeChild(JA);
      } catch (gA) {
        const _A = document.querySelector('[style*="position: fixed"]');
        _A && _A.parentNode && _A.parentNode.removeChild(_A), console.error("PDF导出失败:", gA), alert("PDF导出失败");
      }
    }, $ = (gA) => {
      Q.value = gA.detail, A.onFullscreenChange && typeof A.onFullscreenChange == "function" && A.onFullscreenChange(Q.value);
    }, uA = (gA) => {
      A.onMilestoneSave && typeof A.onMilestoneSave == "function" && A.onMilestoneSave(gA);
    }, hA = (gA) => {
      const _A = gA.detail;
      if (_A.type === "task" && _A.parentId) {
        const Ae = mA(_A.parentId, _A);
        A.onTaskUpdate && typeof A.onTaskUpdate == "function" && A.onTaskUpdate(_A), Ae && A.onTaskUpdate && typeof A.onTaskUpdate == "function" && A.onTaskUpdate(Ae);
      } else A.onTaskUpdate && typeof A.onTaskUpdate == "function" && A.onTaskUpdate(_A);
      q.value++;
    }, mA = (gA, _A) => {
      const Ae = [...A.tasks || []], JA = [], LA = (ee) => {
        ee.forEach((qA) => {
          JA.push(qA), qA.children && qA.children.length > 0 && LA(qA.children);
        });
      };
      LA(Ae);
      const ae = JA.find((ee) => ee.id === gA && ee.type === "story");
      if (!ae) return null;
      let He = JA.filter((ee) => ee.parentId === gA && ee.type === "task");
      if (He.length === 0) return null;
      _A && _A.type === "task" && _A.parentId === gA && (He = He.map((ee) => ee.id === _A.id ? _A : ee));
      const ve = He.reduce((ee, qA) => ee + (qA.progress || 0), 0), $A = Math.round(ve / He.length);
      return ae.progress !== $A ? { ...ae, progress: $A } : null;
    }, jA = (gA) => {
      const _A = gA.detail;
      A.onTaskAdd && typeof A.onTaskAdd == "function" && A.onTaskAdd(_A), q.value++;
    }, VA = (gA) => {
      const { milestoneId: _A, icon: Ae } = gA.detail;
      A.onMilestoneIconChange && typeof A.onMilestoneIconChange == "function" && A.onMilestoneIconChange(_A, Ae);
    }, YA = (gA) => {
      const { milestoneId: _A } = gA.detail;
      A.onMilestoneDelete && typeof A.onMilestoneDelete == "function" && A.onMilestoneDelete(_A), q.value++;
    }, nA = () => {
      q.value++, pt(() => {
      });
    };
    Sr(() => {
      pt(() => {
        a.value && typeof a.value.scrollToTodayCenter == "function" && a.value.scrollToTodayCenter();
      });
    });
    const UA = () => {
      if (A.onTodayLocate && typeof A.onTodayLocate == "function") {
        A.onTodayLocate();
        return;
      }
      if (a.value && typeof a.value.scrollToTodayCenter == "function") {
        a.value.scrollToTodayCenter();
        return;
      }
      CA();
    }, yA = () => {
      if (A.onAddMilestone && typeof A.onAddMilestone == "function") {
        A.onAddMilestone();
        return;
      }
      G();
    }, G = () => {
      window.dispatchEvent(new CustomEvent("add-milestone"));
    }, CA = () => {
      if (a.value && typeof a.value.scrollToToday == "function") {
        a.value.scrollToToday();
        return;
      }
      const gA = /* @__PURE__ */ new Date(), _A = gA.getMonth(), Ae = gA.getDate();
      let JA = 0;
      for (let ee = 0; ee < _A; ee++)
        JA += new Date(gA.getFullYear(), ee + 1, 0).getDate();
      JA += Ae;
      const LA = document.querySelector(".gantt-panel-right"), ae = LA == null ? void 0 : LA.clientWidth, He = ae ? ae / 2 : 200, ve = (JA - 1) * 30 - He, $A = document.querySelector(".timeline");
      if ($A) {
        $A.scrollLeft = Math.max(0, ve);
        const ee = $A.querySelector(".day-column.today");
        ee && (ee.classList.add("today-highlight"), setTimeout(() => {
          ee.classList.remove("today-highlight");
        }, 2e3));
      }
    }, DA = () => {
      const gA = p(s.value);
      gA !== s.value && (s.value = gA);
    };
    A.localeMessages && rf(U.value, A.localeMessages), Je(
      () => A.localeMessages,
      (gA) => {
        gA && rf(U.value, gA);
      },
      { deep: !0 }
    );
    const cA = IA({ x: 0, y: 0 }), HA = IA(!1), XA = IA(null), OA = IA(!1), ZA = IA(null), sA = IA(!1), bA = IA(null), PA = IA(null), te = (gA) => {
      const { task: _A, position: Ae } = gA.detail;
      XA.value = _A, cA.value = Ae, HA.value = !0;
    }, he = () => {
      HA.value = !1;
    };
    function re() {
      const gA = {
        id: Date.now(),
        // 临时id,实际保存时应由后端分配
        name: "",
        type: "task",
        assignee: "",
        startDate: "",
        endDate: "",
        predecessor: [],
        estimatedHours: 0,
        actualHours: 0,
        progress: 0,
        description: "",
        parentId: void 0,
        children: []
      };
      ZA.value = gA, sA.value = !1, OA.value = !0;
    }
    const ce = (gA) => {
      if (A.tasks) {
        const _A = (Ae) => {
          var JA;
          for (let LA = 0; LA < Ae.length; LA++) {
            if (Ae[LA].id === gA.id)
              return Ae[LA].isTimerRunning = !0, Ae[LA].timerStartTime = gA.timerStartTime || Date.now(), Ae[LA].timerEndTime = void 0, Ae[LA].timerElapsedTime = 0, !0;
            if ((JA = Ae[LA].children) != null && JA.length && _A(Ae[LA].children))
              return !0;
          }
          return !1;
        };
        _A(A.tasks);
      }
      he(), r("timer-started", gA);
    }, RA = (gA) => {
      if (A.tasks) {
        const _A = (Ae) => {
          var JA;
          for (let LA = 0; LA < Ae.length; LA++) {
            if (Ae[LA].id === gA.id) {
              if (Ae[LA].isTimerRunning && Ae[LA].timerStartTime !== void 0) {
                const ae = Ae[LA].timerElapsedTime || 0;
                Ae[LA].timerElapsedTime = ae + (Date.now() - Ae[LA].timerStartTime), Ae[LA].timerEndTime = Date.now();
              }
              return Ae[LA].isTimerRunning = !1, OA.value && ZA.value && ZA.value.id === gA.id && (ZA.value.isTimerRunning = !1, ZA.value.timerEndTime = Date.now()), !0;
            }
            if ((JA = Ae[LA].children) != null && JA.length && _A(Ae[LA].children))
              return !0;
          }
          return !1;
        };
        _A(A.tasks);
      }
      he(), r("timer-stopped", gA);
    };
    function Pe(gA) {
      ZA.value = gA, sA.value = !0, OA.value = !0;
    }
    function Ce(gA) {
      if (!gA) return;
      bA.value = gA;
      const _A = {
        id: Date.now(),
        // 临时id,实际保存时应由后端分配
        name: "",
        type: "task",
        assignee: "",
        startDate: "",
        endDate: "",
        predecessor: [],
        estimatedHours: 0,
        actualHours: 0,
        progress: 0,
        description: "",
        parentId: gA.parentId,
        children: []
      };
      ZA.value = _A, sA.value = !1, OA.value = !0;
    }
    function tt(gA) {
      if (!gA) return;
      PA.value = gA;
      const _A = {
        id: Date.now(),
        // 临时id,实际保存时应由后端分配
        name: "",
        type: "task",
        assignee: "",
        startDate: "",
        endDate: "",
        predecessor: [gA.id],
        estimatedHours: 0,
        actualHours: 0,
        progress: 0,
        description: "",
        parentId: gA.parentId,
        children: []
      };
      ZA.value = _A, sA.value = !1, OA.value = !0;
    }
    const Ue = (gA, _A) => {
      if (!_A.parentId)
        return gA.push(_A), !0;
      for (const Ae of gA) {
        if (Ae.id === _A.parentId)
          return Ae.children || (Ae.children = []), Ae.children.push(_A), !0;
        if (Ae.children && Ae.children.length > 0 && Ue(Ae.children, _A))
          return !0;
      }
      return !1;
    }, ke = (gA, _A) => {
      for (let Ae = 0; Ae < gA.length; Ae++) {
        if (gA[Ae].id === _A.id)
          return gA[Ae] = { ...gA[Ae], ..._A }, !0;
        if (gA[Ae].children && gA[Ae].children.length > 0 && ke(gA[Ae].children, _A))
          return !0;
      }
      return !1;
    };
    function mt(gA) {
      sA.value ? (A.tasks && ke(A.tasks, gA), q.value++, r("task-updated", { task: gA })) : (A.tasks && Ue(A.tasks, gA), r("task-added", { task: gA }), bA.value && (bA.value.predecessor || (bA.value.predecessor = []), bA.value.predecessor.push(gA.id), r("predecessor-added", { targetTask: bA.value, newTask: gA }), bA.value = null), PA.value && (r("successor-added", { targetTask: PA.value, newTask: gA }), PA.value = null));
    }
    function Se(gA, _A, Ae) {
      for (let JA = 0; JA < gA.length; JA++) {
        if (gA[JA].id === _A) {
          if (Ae)
            gA.splice(JA, 1);
          else {
            const LA = gA[JA].children || [];
            gA.splice(JA, 1, ...LA);
          }
          return !0;
        }
        if (gA[JA].children && gA[JA].children.length > 0 && Se(gA[JA].children, _A, Ae))
          return !0;
      }
      return !1;
    }
    function xt(gA, _A) {
      A.tasks && Se(A.tasks, gA.id, _A), OA.value = !1, ZA.value = null, r("task-deleted", { task: gA });
    }
    return (gA, _A) => (wA(), FA("div", {
      class: Me(["gantt-root", { "gantt-fullscreen": Q.value, "splitter-dragging": m.value }])
    }, [
      A.showToolbar ? (wA(), Dr(g2, {
        key: 0,
        config: A.toolbarConfig,
        "on-add-task": A.onAddTask,
        "on-add-milestone": yA,
        "on-today-locate": UA,
        "on-export-csv": rA,
        "on-export-pdf": j,
        "on-language-change": A.onLanguageChange,
        "on-theme-change": A.onThemeChange,
        "on-fullscreen-change": A.onFullscreenChange,
        "on-time-scale-change": QA,
        onAddTask: re
      }, null, 8, ["config", "on-add-task", "on-language-change", "on-theme-change", "on-fullscreen-change"])) : Be("", !0),
      N("div", XC, [
        D.value ? (wA(), FA("div", {
          key: 0,
          class: "gantt-panel gantt-panel-left",
          style: At({ width: s.value + "px" })
        }, [
          xr(Vp, {
            tasks: AA.value,
            "on-task-double-click": A.onTaskDoubleClick,
            "edit-component": A.editComponent,
            "use-default-drawer": A.useDefaultDrawer,
            onTaskCollapseChange: O,
            onStartTimer: ce,
            onStopTimer: RA,
            onAddPredecessor: Ce,
            onAddSuccessor: tt,
            onDelete: xt
          }, null, 8, ["tasks", "on-task-double-click", "edit-component", "use-default-drawer"])
        ], 4)) : Be("", !0),
        N("div", {
          class: "gantt-splitter",
          onMousedown: F
        }, [
          N("div", {
            class: Me(["task-list-toggle", {
              collapsed: !D.value,
              [E.value]: v.value
            }]),
            title: D.value ? R.value : X.value,
            onClick: Br(P, ["stop"])
          }, [
            (wA(), FA("svg", YC, [
              D.value ? (wA(), FA("polyline", JC)) : (wA(), FA("polyline", $C))
            ]))
          ], 10, zC)
        ], 32),
        N("div", {
          class: Me(["gantt-panel gantt-panel-right", { "full-width": !D.value }])
        }, [
          xr(D1, {
            ref_key: "timelineRef",
            ref: a,
            tasks: z.value,
            milestones: A.milestones,
            "start-date": aA.value.min,
            "end-date": aA.value.max,
            "on-task-double-click": A.onTaskDoubleClick,
            "edit-component": A.editComponent,
            "use-default-drawer": A.useDefaultDrawer,
            "on-milestone-save": uA,
            onTimelineScaleChanged: b,
            onEditTask: Pe,
            onStartTimer: ce,
            onStopTimer: RA,
            onAddPredecessor: Ce,
            onAddSuccessor: tt,
            onDelete: xt
          }, null, 8, ["tasks", "milestones", "start-date", "end-date", "on-task-double-click", "edit-component", "use-default-drawer"])
        ], 2)
      ]),
      A.useDefaultDrawer ? (wA(), Dr(QB, {
        key: 1,
        visible: OA.value,
        "onUpdate:visible": _A[0] || (_A[0] = (Ae) => OA.value = Ae),
        task: ZA.value,
        "is-edit": sA.value,
        onSubmit: mt,
        onClose: _A[1] || (_A[1] = (Ae) => OA.value = !1),
        onStartTimer: ce,
        onStopTimer: RA,
        onDelete: xt
      }, null, 8, ["visible", "task", "is-edit"])) : Be("", !0)
    ], 2));
  }
}), A4 = /* @__PURE__ */ mr(ZC, [["__scopeId", "data-v-6f6d1a38"]]), e4 = (t) => {
  t.component("GanttChart", A4);
}, r4 = {
  install: e4
};
export {
  A4 as G,
  nf as M,
  Vp as T,
  et as _,
  r4 as a,
  D1 as b,
  n0 as c,
  QB as d,
  p1 as e,
  Sp as f,
  e4 as i,
  Sd as u
};