{"version":3,"file":"index.cjs","sources":["../node_modules/react/cjs/react-jsx-runtime.production.js","../node_modules/react/cjs/react-jsx-runtime.development.js","../node_modules/react/jsx-runtime.js","../src/component/useInit.ts","../src/component/useDraw.tsx","../src/component/SimpleSignature.tsx","../src/index.ts"],"sourcesContent":["/**\n * @license React\n * react-jsx-runtime.production.js\n *\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\"use strict\";\nvar REACT_ELEMENT_TYPE = Symbol.for(\"react.transitional.element\"),\n  REACT_FRAGMENT_TYPE = Symbol.for(\"react.fragment\");\nfunction jsxProd(type, config, maybeKey) {\n  var key = null;\n  void 0 !== maybeKey && (key = \"\" + maybeKey);\n  void 0 !== config.key && (key = \"\" + config.key);\n  if (\"key\" in config) {\n    maybeKey = {};\n    for (var propName in config)\n      \"key\" !== propName && (maybeKey[propName] = config[propName]);\n  } else maybeKey = config;\n  config = maybeKey.ref;\n  return {\n    $$typeof: REACT_ELEMENT_TYPE,\n    type: type,\n    key: key,\n    ref: void 0 !== config ? config : null,\n    props: maybeKey\n  };\n}\nexports.Fragment = REACT_FRAGMENT_TYPE;\nexports.jsx = jsxProd;\nexports.jsxs = jsxProd;\n","/**\n * @license React\n * react-jsx-runtime.development.js\n *\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\"use strict\";\n\"production\" !== process.env.NODE_ENV &&\n  (function () {\n    function getComponentNameFromType(type) {\n      if (null == type) return null;\n      if (\"function\" === typeof type)\n        return type.$$typeof === REACT_CLIENT_REFERENCE\n          ? null\n          : type.displayName || type.name || null;\n      if (\"string\" === typeof type) return type;\n      switch (type) {\n        case REACT_FRAGMENT_TYPE:\n          return \"Fragment\";\n        case REACT_PROFILER_TYPE:\n          return \"Profiler\";\n        case REACT_STRICT_MODE_TYPE:\n          return \"StrictMode\";\n        case REACT_SUSPENSE_TYPE:\n          return \"Suspense\";\n        case REACT_SUSPENSE_LIST_TYPE:\n          return \"SuspenseList\";\n        case REACT_ACTIVITY_TYPE:\n          return \"Activity\";\n      }\n      if (\"object\" === typeof type)\n        switch (\n          (\"number\" === typeof type.tag &&\n            console.error(\n              \"Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue.\"\n            ),\n          type.$$typeof)\n        ) {\n          case REACT_PORTAL_TYPE:\n            return \"Portal\";\n          case REACT_CONTEXT_TYPE:\n            return (type.displayName || \"Context\") + \".Provider\";\n          case REACT_CONSUMER_TYPE:\n            return (type._context.displayName || \"Context\") + \".Consumer\";\n          case REACT_FORWARD_REF_TYPE:\n            var innerType = type.render;\n            type = type.displayName;\n            type ||\n              ((type = innerType.displayName || innerType.name || \"\"),\n              (type = \"\" !== type ? \"ForwardRef(\" + type + \")\" : \"ForwardRef\"));\n            return type;\n          case REACT_MEMO_TYPE:\n            return (\n              (innerType = type.displayName || null),\n              null !== innerType\n                ? innerType\n                : getComponentNameFromType(type.type) || \"Memo\"\n            );\n          case REACT_LAZY_TYPE:\n            innerType = type._payload;\n            type = type._init;\n            try {\n              return getComponentNameFromType(type(innerType));\n            } catch (x) {}\n        }\n      return null;\n    }\n    function testStringCoercion(value) {\n      return \"\" + value;\n    }\n    function checkKeyStringCoercion(value) {\n      try {\n        testStringCoercion(value);\n        var JSCompiler_inline_result = !1;\n      } catch (e) {\n        JSCompiler_inline_result = !0;\n      }\n      if (JSCompiler_inline_result) {\n        JSCompiler_inline_result = console;\n        var JSCompiler_temp_const = JSCompiler_inline_result.error;\n        var JSCompiler_inline_result$jscomp$0 =\n          (\"function\" === typeof Symbol &&\n            Symbol.toStringTag &&\n            value[Symbol.toStringTag]) ||\n          value.constructor.name ||\n          \"Object\";\n        JSCompiler_temp_const.call(\n          JSCompiler_inline_result,\n          \"The provided key is an unsupported type %s. This value must be coerced to a string before using it here.\",\n          JSCompiler_inline_result$jscomp$0\n        );\n        return testStringCoercion(value);\n      }\n    }\n    function getTaskName(type) {\n      if (type === REACT_FRAGMENT_TYPE) return \"<>\";\n      if (\n        \"object\" === typeof type &&\n        null !== type &&\n        type.$$typeof === REACT_LAZY_TYPE\n      )\n        return \"<...>\";\n      try {\n        var name = getComponentNameFromType(type);\n        return name ? \"<\" + name + \">\" : \"<...>\";\n      } catch (x) {\n        return \"<...>\";\n      }\n    }\n    function getOwner() {\n      var dispatcher = ReactSharedInternals.A;\n      return null === dispatcher ? null : dispatcher.getOwner();\n    }\n    function UnknownOwner() {\n      return Error(\"react-stack-top-frame\");\n    }\n    function hasValidKey(config) {\n      if (hasOwnProperty.call(config, \"key\")) {\n        var getter = Object.getOwnPropertyDescriptor(config, \"key\").get;\n        if (getter && getter.isReactWarning) return !1;\n      }\n      return void 0 !== config.key;\n    }\n    function defineKeyPropWarningGetter(props, displayName) {\n      function warnAboutAccessingKey() {\n        specialPropKeyWarningShown ||\n          ((specialPropKeyWarningShown = !0),\n          console.error(\n            \"%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://react.dev/link/special-props)\",\n            displayName\n          ));\n      }\n      warnAboutAccessingKey.isReactWarning = !0;\n      Object.defineProperty(props, \"key\", {\n        get: warnAboutAccessingKey,\n        configurable: !0\n      });\n    }\n    function elementRefGetterWithDeprecationWarning() {\n      var componentName = getComponentNameFromType(this.type);\n      didWarnAboutElementRef[componentName] ||\n        ((didWarnAboutElementRef[componentName] = !0),\n        console.error(\n          \"Accessing element.ref was removed in React 19. ref is now a regular prop. It will be removed from the JSX Element type in a future release.\"\n        ));\n      componentName = this.props.ref;\n      return void 0 !== componentName ? componentName : null;\n    }\n    function ReactElement(\n      type,\n      key,\n      self,\n      source,\n      owner,\n      props,\n      debugStack,\n      debugTask\n    ) {\n      self = props.ref;\n      type = {\n        $$typeof: REACT_ELEMENT_TYPE,\n        type: type,\n        key: key,\n        props: props,\n        _owner: owner\n      };\n      null !== (void 0 !== self ? self : null)\n        ? Object.defineProperty(type, \"ref\", {\n            enumerable: !1,\n            get: elementRefGetterWithDeprecationWarning\n          })\n        : Object.defineProperty(type, \"ref\", { enumerable: !1, value: null });\n      type._store = {};\n      Object.defineProperty(type._store, \"validated\", {\n        configurable: !1,\n        enumerable: !1,\n        writable: !0,\n        value: 0\n      });\n      Object.defineProperty(type, \"_debugInfo\", {\n        configurable: !1,\n        enumerable: !1,\n        writable: !0,\n        value: null\n      });\n      Object.defineProperty(type, \"_debugStack\", {\n        configurable: !1,\n        enumerable: !1,\n        writable: !0,\n        value: debugStack\n      });\n      Object.defineProperty(type, \"_debugTask\", {\n        configurable: !1,\n        enumerable: !1,\n        writable: !0,\n        value: debugTask\n      });\n      Object.freeze && (Object.freeze(type.props), Object.freeze(type));\n      return type;\n    }\n    function jsxDEVImpl(\n      type,\n      config,\n      maybeKey,\n      isStaticChildren,\n      source,\n      self,\n      debugStack,\n      debugTask\n    ) {\n      var children = config.children;\n      if (void 0 !== children)\n        if (isStaticChildren)\n          if (isArrayImpl(children)) {\n            for (\n              isStaticChildren = 0;\n              isStaticChildren < children.length;\n              isStaticChildren++\n            )\n              validateChildKeys(children[isStaticChildren]);\n            Object.freeze && Object.freeze(children);\n          } else\n            console.error(\n              \"React.jsx: Static children should always be an array. You are likely explicitly calling React.jsxs or React.jsxDEV. Use the Babel transform instead.\"\n            );\n        else validateChildKeys(children);\n      if (hasOwnProperty.call(config, \"key\")) {\n        children = getComponentNameFromType(type);\n        var keys = Object.keys(config).filter(function (k) {\n          return \"key\" !== k;\n        });\n        isStaticChildren =\n          0 < keys.length\n            ? \"{key: someKey, \" + keys.join(\": ..., \") + \": ...}\"\n            : \"{key: someKey}\";\n        didWarnAboutKeySpread[children + isStaticChildren] ||\n          ((keys =\n            0 < keys.length ? \"{\" + keys.join(\": ..., \") + \": ...}\" : \"{}\"),\n          console.error(\n            'A props object containing a \"key\" prop is being spread into JSX:\\n  let props = %s;\\n  <%s {...props} />\\nReact keys must be passed directly to JSX without using spread:\\n  let props = %s;\\n  <%s key={someKey} {...props} />',\n            isStaticChildren,\n            children,\n            keys,\n            children\n          ),\n          (didWarnAboutKeySpread[children + isStaticChildren] = !0));\n      }\n      children = null;\n      void 0 !== maybeKey &&\n        (checkKeyStringCoercion(maybeKey), (children = \"\" + maybeKey));\n      hasValidKey(config) &&\n        (checkKeyStringCoercion(config.key), (children = \"\" + config.key));\n      if (\"key\" in config) {\n        maybeKey = {};\n        for (var propName in config)\n          \"key\" !== propName && (maybeKey[propName] = config[propName]);\n      } else maybeKey = config;\n      children &&\n        defineKeyPropWarningGetter(\n          maybeKey,\n          \"function\" === typeof type\n            ? type.displayName || type.name || \"Unknown\"\n            : type\n        );\n      return ReactElement(\n        type,\n        children,\n        self,\n        source,\n        getOwner(),\n        maybeKey,\n        debugStack,\n        debugTask\n      );\n    }\n    function validateChildKeys(node) {\n      \"object\" === typeof node &&\n        null !== node &&\n        node.$$typeof === REACT_ELEMENT_TYPE &&\n        node._store &&\n        (node._store.validated = 1);\n    }\n    var React = require(\"react\"),\n      REACT_ELEMENT_TYPE = Symbol.for(\"react.transitional.element\"),\n      REACT_PORTAL_TYPE = Symbol.for(\"react.portal\"),\n      REACT_FRAGMENT_TYPE = Symbol.for(\"react.fragment\"),\n      REACT_STRICT_MODE_TYPE = Symbol.for(\"react.strict_mode\"),\n      REACT_PROFILER_TYPE = Symbol.for(\"react.profiler\");\n    Symbol.for(\"react.provider\");\n    var REACT_CONSUMER_TYPE = Symbol.for(\"react.consumer\"),\n      REACT_CONTEXT_TYPE = Symbol.for(\"react.context\"),\n      REACT_FORWARD_REF_TYPE = Symbol.for(\"react.forward_ref\"),\n      REACT_SUSPENSE_TYPE = Symbol.for(\"react.suspense\"),\n      REACT_SUSPENSE_LIST_TYPE = Symbol.for(\"react.suspense_list\"),\n      REACT_MEMO_TYPE = Symbol.for(\"react.memo\"),\n      REACT_LAZY_TYPE = Symbol.for(\"react.lazy\"),\n      REACT_ACTIVITY_TYPE = Symbol.for(\"react.activity\"),\n      REACT_CLIENT_REFERENCE = Symbol.for(\"react.client.reference\"),\n      ReactSharedInternals =\n        React.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,\n      hasOwnProperty = Object.prototype.hasOwnProperty,\n      isArrayImpl = Array.isArray,\n      createTask = console.createTask\n        ? console.createTask\n        : function () {\n            return null;\n          };\n    React = {\n      react_stack_bottom_frame: function (callStackForError) {\n        return callStackForError();\n      }\n    };\n    var specialPropKeyWarningShown;\n    var didWarnAboutElementRef = {};\n    var unknownOwnerDebugStack = React.react_stack_bottom_frame.bind(\n      React,\n      UnknownOwner\n    )();\n    var unknownOwnerDebugTask = createTask(getTaskName(UnknownOwner));\n    var didWarnAboutKeySpread = {};\n    exports.Fragment = REACT_FRAGMENT_TYPE;\n    exports.jsx = function (type, config, maybeKey, source, self) {\n      var trackActualOwner =\n        1e4 > ReactSharedInternals.recentlyCreatedOwnerStacks++;\n      return jsxDEVImpl(\n        type,\n        config,\n        maybeKey,\n        !1,\n        source,\n        self,\n        trackActualOwner\n          ? Error(\"react-stack-top-frame\")\n          : unknownOwnerDebugStack,\n        trackActualOwner ? createTask(getTaskName(type)) : unknownOwnerDebugTask\n      );\n    };\n    exports.jsxs = function (type, config, maybeKey, source, self) {\n      var trackActualOwner =\n        1e4 > ReactSharedInternals.recentlyCreatedOwnerStacks++;\n      return jsxDEVImpl(\n        type,\n        config,\n        maybeKey,\n        !0,\n        source,\n        self,\n        trackActualOwner\n          ? Error(\"react-stack-top-frame\")\n          : unknownOwnerDebugStack,\n        trackActualOwner ? createTask(getTaskName(type)) : unknownOwnerDebugTask\n      );\n    };\n  })();\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n  module.exports = require('./cjs/react-jsx-runtime.production.js');\n} else {\n  module.exports = require('./cjs/react-jsx-runtime.development.js');\n}\n","import {\n  useEffect, type RefObject\n} from \"react\";\n  \ninterface hookProps{\n  className?:string\n  height?: number; \n  width?: number;  \n  strokeColor?: `#${string}`;\n  canvasRef: RefObject<HTMLCanvasElement|null> ; // Allow null for initial render\n}\n  \n/**\n * Initializes the canvas: Sets the canvas size, \n * scales the context for devicePixelRatio, and applies default stroke styles.\n */\nexport default function useInit({\n  className,height, width, strokeColor, canvasRef\n}: hookProps) {\n\n  useEffect(() => {\n\n    if (canvasRef.current === null) \n      return;\n\n    const canvas = canvasRef.current;\n    canvas.role = 'img';\n    canvas.tabIndex=0;\n    canvas.className = className??'';\n\n    const ctx = canvas.getContext(\"2d\");\n    if (!ctx) return;\n\n    // Account for high-resolution screens\n    const dpr = window.devicePixelRatio || 1;\n\n    // Use passed-in width/height, or fallback to defaults\n    const canvasWidth = width ?? 400;\n    const canvasHeight = height ?? 400;\n\n    // Set internal pixel dimensions for HiDPI rendering\n    canvas.width = canvasWidth * dpr;\n    canvas.height = canvasHeight * dpr;\n\n    // Set visible size for layout (CSS pixels)\n    // ensure canvas appears at intended size regardless of internal resolution\n    canvas.style.width = `${canvasWidth}px`;\n    canvas.style.height = `${canvasHeight}px`;\n\n    // Scale drawing operations to match physical pixel density\n    ctx.scale(dpr, dpr);\n\n    // Configure default drawing style\n    ctx.lineWidth = 2;\n    ctx.lineCap = \"round\";\n    ctx.strokeStyle = strokeColor?? '#000000' ;\n  }, [width, height, strokeColor, canvasRef, className]);\n\n}","import {\n  useState, useRef \n} from \"react\";\n\nimport type {\n  MouseEvent,\n  TouchEvent \n} from \"react\";\n\ninterface useDrawProps {\n  onChange?: (blob: Blob) => void;\n  onStart?: () => void;\n  blobFormat?: \"png\" | \"jpeg\";\n}\n\n/**\n * Hook for handling smooth canvas-based drawing, touch/mouse support, and emitting a blob image.\n * Supports consumer callbacks for draw start and completion.\n */\nexport default function useDraw({\n  onChange, blobFormat, onStart\n}: useDrawProps) {\n  const canvasRef = useRef<HTMLCanvasElement>(null);\n\n  // Tracks whether the user is currently drawing on the canvas\n  const [drawing, setDrawing] = useState(false);\n\n  // Tracks whether any drawing has occurred (used to decide if a blob should be emitted)\n  const [hasDrawn, setHasDrawn] = useState(false);\n\n  // Last recorded point used for smoothing with quadratic curves\n  const [lastPoint, setLastPoint] = useState<{\n    x: number; y: number \n  } | null>(null);\n\n  /**\n   * Returns canvas-relative coordinates for a mouse or touch event.\n   * Returns null if canvas isn't ready.\n   */\n  const getEventPosition = (\n    e: TouchEvent<HTMLCanvasElement> | MouseEvent<HTMLCanvasElement>\n  ): {\n    offsetX: number, offsetY: number\n  } | null => {\n    const canvas = canvasRef.current;\n    if (!canvas) return null;\n\n    let clientX, clientY;\n\n    if (\"touches\" in e) {\n      clientX = e.touches[0].clientX;\n      clientY = e.touches[0].clientY;\n    } else {\n      clientX = e.clientX;\n      clientY = e.clientY;\n    }\n\n    const rectangle = canvas.getBoundingClientRect();\n\n    return {\n      offsetX: clientX - rectangle.left,\n      offsetY: clientY - rectangle.top,\n    };\n  };\n\n  /**\n   * Draws a smooth line from the last point to the current event position.\n   * No-ops if drawing hasn't started or the canvas is unavailable.\n   */\n  const draw = (\n    e: MouseEvent<HTMLCanvasElement> | TouchEvent<HTMLCanvasElement>\n  ) => {\n    if (!drawing) return;\n\n    const position = getEventPosition(e);\n\n    // if coordinates haven't been set, exit\n    if (!position || !lastPoint) return;\n\n    const {\n      offsetX, offsetY \n    } = position;\n    const ctx = canvasRef.current?.getContext(\"2d\");\n    if (!ctx) return;\n\n    const midX = (lastPoint.x + offsetX) / 2;\n    const midY = (lastPoint.y + offsetY) / 2;\n\n    ctx.quadraticCurveTo(lastPoint.x, lastPoint.y, midX, midY);\n    ctx.stroke();\n\n    setLastPoint({\n      x: offsetX, y: offsetY \n    });\n    setHasDrawn(true);\n  };\n\n  /**\n   * Begins a new drawing path at the current event position.\n   * Invokes onStart callback if provided.\n   */\n  const startDrawing = (\n    e: MouseEvent<HTMLCanvasElement> | TouchEvent<HTMLCanvasElement>\n  ) => {\n    const position = getEventPosition(e);\n    if (position === null) return;\n\n    const {\n      offsetX, offsetY \n    } = position;\n    const ctx = canvasRef.current?.getContext(\"2d\");\n    if (!ctx) return;\n\n    ctx.beginPath();\n    ctx.moveTo(offsetX, offsetY);\n    setDrawing(true);\n    setHasDrawn(true);\n    setLastPoint({\n      x: offsetX, y: offsetY \n    });\n\n    if( onStart)\n      onStart();\n  };\n\n  /**\n   * Emits the current canvas contents as a Blob to the onChange callback.\n   */\n  const emitBlob = () => {\n    if (!canvasRef.current || !onChange) return;\n\n    canvasRef.current.toBlob((blob) => {\n      if (blob === null) return;\n      onChange(blob);\n    }, `image/${blobFormat}`);\n  };\n\n  /**\n   * Ends the current stroke and emits a blob if anything was drawn.\n   */\n  const endDrawing = () => {\n    if (!drawing) return; // prevent double calls\n\n    setDrawing(false);\n    setLastPoint(null);\n\n    const ctx = canvasRef.current?.getContext(\"2d\");\n    if (!ctx) return;\n\n    ctx.closePath();\n\n    if (hasDrawn) {\n      emitBlob();\n    }\n  };\n\n  /**\n   * Clears the canvas and resets internal state.\n   */\n  const clear = () => {\n    const canvas = canvasRef.current;\n    if (!canvas) return;\n\n    const ctx = canvas.getContext('2d');\n    if (!ctx) return;\n\n    ctx.clearRect(0, 0, canvas.width, canvas.height); // 🧽\n    setLastPoint(null);\n    setHasDrawn(false); // 🧠\n    setDrawing(false);\n  };\n\n  return {\n    draw,\n    canvasRef,\n    endDrawing,\n    startDrawing,\n    clear\n  };\n}","import {\n  useImperativeHandle,\n} from \"react\";\n\nimport type {\n  Ref\n} from \"react\";\n\nimport useInit from \"./useInit\";\nimport useDraw from './useDraw';\n\nexport interface SimpleSignatureProps {\n  /**\n   * Called when the user modifies the drawing; returns a blob of the new drawing\n   * @param blob \n   * @returns \n   */\n  onChange?: (blob: Blob) => void;\n  /**\n   * Called when the user starts drawing\n   * @returns \n   */\n  onStart?: () => void;\n  height?: number ;\n  width?: number ;\n  className?: string;\n  ref?: Ref<SignatureRef>; \n  blobFormat?: \"png\" | \"jpeg\";\n  strokeColor?: `#${string}`;\n} \n\nexport interface SignatureRef {\n  clear: () => void;\n}\n\n/**\n * SimpleSignature is a functional component for that captures user-drawn lines.\n * It supports mouse and touch input, emits a blob when drawing ends, and can be cleared via ref.\n */\nexport default function SimpleSignature({\n  ref,\n  onChange: onSignatureChange,\n  height,\n  width,\n  className, \n  blobFormat = \"png\", \n  strokeColor = \"#000\",\n  onStart\n}: SimpleSignatureProps) {\n\n  const {\n    draw, canvasRef,  clear, endDrawing, startDrawing\n  } = useDraw({\n    onChange: onSignatureChange, blobFormat, onStart\n  });\n\n  useInit({\n    height, width, strokeColor,canvasRef, className\n  });\n\n  // Expose a clear() method to parent components via ref\n  useImperativeHandle(ref, () => ({\n    clear\n  }));\n\n  return (\n    <canvas\n      aria-label={\n        \"Signature input area. Use your mouse or touch \" +\n        \"to draw your signature.\"\n      }\n      onMouseDown={startDrawing}\n      onMouseLeave={endDrawing} // finalize drawing if pointer leaves canvas\n      onMouseMove={draw}\n      onMouseUp={endDrawing}\n      onTouchCancel={endDrawing}\n      onTouchEnd={endDrawing}\n      onTouchMove={draw}\n      onTouchStart={startDrawing} \n      ref={canvasRef}\n      style={{\n        touchAction: \"none\" // prevent scrolling during touch drawing\n      }}\n    />\n \n  );\n}\n","import {\n  createElement \n} from \"react\";\nimport type {\n  ComponentType, Ref, ReactElement \n} from \"react\";\nimport Inner, {\n  type SimpleSignatureProps,\n  type SignatureRef\n} from \"./component/SimpleSignature\";\n\n/** Public entry: accepts a React ref prop and passes it to the inner component */\nexport function SimpleSignature(\n  {\n    ref, ...props \n  }: \n  Omit<SimpleSignatureProps, \"ref\"> & {\n    ref?: Ref<SignatureRef> \n  }\n): ReactElement | null {\n  // eslint-disable-next-line max-len\n  return createElement(Inner as unknown as ComponentType<SimpleSignatureProps>, {\n    ...(props as SimpleSignatureProps),\n    ref\n  });\n}\n\nexport type {\n  SimpleSignatureProps, SignatureRef \n};"],"names":["jsxRuntimeModule","require$$0","require$$1","useEffect","useRef","useState","SimpleSignature","useImperativeHandle","jsx","createElement","Inner"],"mappings":"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","x_google_ignoreList":[0,1,2]}