@vertexvis/viewer 0.21.0-testing.2 → 0.21.0-testing.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (82) hide show
  1. package/dist/cjs/{controller-9e5744ec.js → controller-004b9f2c.js} +197 -4
  2. package/dist/cjs/controller-004b9f2c.js.map +1 -0
  3. package/dist/cjs/index.cjs.js +2 -2
  4. package/dist/cjs/loader.cjs.js +1 -1
  5. package/dist/cjs/{queries-b9bf26dd.js → queries-731d8cf1.js} +40 -12
  6. package/dist/cjs/queries-731d8cf1.js.map +1 -0
  7. package/dist/cjs/vertex-scene-tree.cjs.entry.js +24 -11
  8. package/dist/cjs/vertex-scene-tree.cjs.entry.js.map +1 -1
  9. package/dist/cjs/vertex-viewer-measurement-distance.cjs.entry.js +6 -0
  10. package/dist/cjs/vertex-viewer-measurement-distance.cjs.entry.js.map +1 -1
  11. package/dist/cjs/vertex-viewer-pin-group.cjs.entry.js +1 -1
  12. package/dist/cjs/vertex-viewer.cjs.entry.js +1 -1
  13. package/dist/cjs/viewer.cjs.js +1 -1
  14. package/dist/collection/components/scene-tree/lib/controller.js +5 -0
  15. package/dist/collection/components/scene-tree/lib/controller.js.map +1 -1
  16. package/dist/collection/components/scene-tree/lib/viewer-ops.js +4 -2
  17. package/dist/collection/components/scene-tree/lib/viewer-ops.js.map +1 -1
  18. package/dist/collection/components/scene-tree/scene-tree.js +50 -12
  19. package/dist/collection/components/scene-tree/scene-tree.js.map +1 -1
  20. package/dist/collection/components/scene-tree/types.js.map +1 -1
  21. package/dist/collection/components/viewer-measurement-distance/viewer-measurement-distance.js +6 -0
  22. package/dist/collection/components/viewer-measurement-distance/viewer-measurement-distance.js.map +1 -1
  23. package/dist/collection/lib/scenes/mapper.js +34 -8
  24. package/dist/collection/lib/scenes/mapper.js.map +1 -1
  25. package/dist/collection/lib/scenes/queries.js +5 -3
  26. package/dist/collection/lib/scenes/queries.js.map +1 -1
  27. package/dist/components/controller.js +196 -3
  28. package/dist/components/controller.js.map +1 -1
  29. package/dist/components/queries.js +39 -11
  30. package/dist/components/queries.js.map +1 -1
  31. package/dist/components/vertex-scene-tree.js +24 -10
  32. package/dist/components/vertex-scene-tree.js.map +1 -1
  33. package/dist/components/vertex-viewer-measurement-distance.js +6 -0
  34. package/dist/components/vertex-viewer-measurement-distance.js.map +1 -1
  35. package/dist/esm/{controller-f2beee15.js → controller-6d2fbb9b.js} +197 -4
  36. package/dist/esm/controller-6d2fbb9b.js.map +1 -0
  37. package/dist/esm/index.js +2 -2
  38. package/dist/esm/index.mjs +2 -2
  39. package/dist/esm/loader.js +1 -1
  40. package/dist/esm/loader.mjs +1 -1
  41. package/dist/esm/{queries-78f566c5.js → queries-3bd4cfe1.js} +40 -12
  42. package/dist/esm/queries-3bd4cfe1.js.map +1 -0
  43. package/dist/esm/vertex-scene-tree.entry.js +24 -11
  44. package/dist/esm/vertex-scene-tree.entry.js.map +1 -1
  45. package/dist/esm/vertex-viewer-measurement-distance.entry.js +6 -0
  46. package/dist/esm/vertex-viewer-measurement-distance.entry.js.map +1 -1
  47. package/dist/esm/vertex-viewer-pin-group.entry.js +1 -1
  48. package/dist/esm/vertex-viewer.entry.js +1 -1
  49. package/dist/esm/viewer.js +1 -1
  50. package/dist/types/components/scene-tree/lib/controller.d.ts +4 -0
  51. package/dist/types/components/scene-tree/lib/viewer-ops.d.ts +1 -1
  52. package/dist/types/components/scene-tree/scene-tree.d.ts +7 -1
  53. package/dist/types/components/scene-tree/types.d.ts +5 -0
  54. package/dist/types/components.d.ts +13 -5
  55. package/dist/types/lib/scenes/queries.d.ts +4 -2
  56. package/dist/viewer/index.esm.js +1 -1
  57. package/dist/viewer/p-0f4f3757.js +5 -0
  58. package/dist/viewer/p-0f4f3757.js.map +1 -0
  59. package/dist/viewer/{p-1486ba3d.entry.js → p-70d29252.entry.js} +2 -2
  60. package/dist/viewer/{p-33627452.entry.js → p-be1fd8a7.entry.js} +2 -2
  61. package/dist/viewer/p-ccb5ff47.js +5 -0
  62. package/dist/viewer/p-ccb5ff47.js.map +1 -0
  63. package/dist/viewer/p-d41913d2.entry.js +5 -0
  64. package/dist/viewer/p-d41913d2.entry.js.map +1 -0
  65. package/dist/viewer/{p-f8c3e667.entry.js → p-d8626aa7.entry.js} +2 -2
  66. package/dist/viewer/p-d8626aa7.entry.js.map +1 -0
  67. package/dist/viewer/viewer.esm.js +1 -1
  68. package/dist/viewer/viewer.esm.js.map +1 -1
  69. package/package.json +8 -8
  70. package/dist/cjs/controller-9e5744ec.js.map +0 -1
  71. package/dist/cjs/queries-b9bf26dd.js.map +0 -1
  72. package/dist/esm/controller-f2beee15.js.map +0 -1
  73. package/dist/esm/queries-78f566c5.js.map +0 -1
  74. package/dist/viewer/p-07b05774.entry.js +0 -5
  75. package/dist/viewer/p-07b05774.entry.js.map +0 -1
  76. package/dist/viewer/p-564f9027.js +0 -5
  77. package/dist/viewer/p-564f9027.js.map +0 -1
  78. package/dist/viewer/p-949afb47.js +0 -5
  79. package/dist/viewer/p-949afb47.js.map +0 -1
  80. package/dist/viewer/p-f8c3e667.entry.js.map +0 -1
  81. /package/dist/viewer/{p-1486ba3d.entry.js.map → p-70d29252.entry.js.map} +0 -0
  82. /package/dist/viewer/{p-33627452.entry.js.map → p-be1fd8a7.entry.js.map} +0 -0
@@ -1 +1 @@
1
- {"file":"controller.js","mappings":"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","names":["jspb","core_protos_uuid_pb","google_protobuf_wrappers_pb","core_protos_paging_pb","scenetree_protos_domain_pb","require$$0","scenetree_protos_scene_tree_api_pb","SceneTreeAPI","grpc","jwtDecode","Uuid","CollapseNodeRequest","ExpandNodeRequest","CollapseAllRequest","ExpandAllRequest","LocateItemRequest","GetNodeAncestorsRequest","GetAvailableColumnsRequest","FilterRequest","SubscribeRequest","OffsetPager","GetTreeRequest"],"sources":["../../node_modules/@vertexvis/scene-tree-protos/core/protos/paging_pb.js","../../node_modules/@vertexvis/scene-tree-protos/core/protos/uuid_pb.js","../../node_modules/@vertexvis/scene-tree-protos/scenetree/protos/domain_pb.js","../../node_modules/@vertexvis/scene-tree-protos/scenetree/protos/scene_tree_api_pb.js","./src/components/scene-tree/lib/errors.ts","../../node_modules/@vertexvis/scene-tree-protos/scenetree/protos/scene_tree_api_pb_service.js","./src/components/scene-tree/lib/grpc.ts","../../node_modules/jwt-decode/build/jwt-decode.esm.js","./src/components/scene-tree/lib/jwt.ts","./src/components/scene-tree/lib/controller.ts"],"sourcesContent":["/**\n * @fileoverview\n * @enhanceable\n * @suppress {messageConventions} JS Compiler reports an error if a variable or\n * field starts with 'MSG_' and isn't a translatable message.\n * @public\n */\n// GENERATED CODE -- DO NOT EDIT!\n\nvar jspb = require('google-protobuf');\nvar goog = jspb;\nvar global = Function('return this')();\n\ngoog.exportSymbol('proto.vertexvis.protobuf.core.Cursor', null, global);\ngoog.exportSymbol('proto.vertexvis.protobuf.core.OffsetCursor', null, global);\ngoog.exportSymbol('proto.vertexvis.protobuf.core.OffsetPager', null, global);\ngoog.exportSymbol('proto.vertexvis.protobuf.core.Pager', null, global);\n\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.vertexvis.protobuf.core.Pager = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.vertexvis.protobuf.core.Pager, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n proto.vertexvis.protobuf.core.Pager.displayName = 'proto.vertexvis.protobuf.core.Pager';\n}\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto suitable for use in Soy templates.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n * com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS.\n * @param {boolean=} opt_includeInstance Whether to include the JSPB instance\n * for transitional soy proto support: http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.vertexvis.protobuf.core.Pager.prototype.toObject = function(opt_includeInstance) {\n return proto.vertexvis.protobuf.core.Pager.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Whether to include the JSPB\n * instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.vertexvis.protobuf.core.Pager} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.vertexvis.protobuf.core.Pager.toObject = function(includeInstance, msg) {\n var f, obj = {\n limit: jspb.Message.getFieldWithDefault(msg, 1, 0),\n cursor: jspb.Message.getFieldWithDefault(msg, 2, \"\")\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.vertexvis.protobuf.core.Pager}\n */\nproto.vertexvis.protobuf.core.Pager.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.vertexvis.protobuf.core.Pager;\n return proto.vertexvis.protobuf.core.Pager.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.vertexvis.protobuf.core.Pager} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.vertexvis.protobuf.core.Pager}\n */\nproto.vertexvis.protobuf.core.Pager.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {number} */ (reader.readUint32());\n msg.setLimit(value);\n break;\n case 2:\n var value = /** @type {string} */ (reader.readString());\n msg.setCursor(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.vertexvis.protobuf.core.Pager.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.vertexvis.protobuf.core.Pager.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.vertexvis.protobuf.core.Pager} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.vertexvis.protobuf.core.Pager.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getLimit();\n if (f !== 0) {\n writer.writeUint32(\n 1,\n f\n );\n }\n f = message.getCursor();\n if (f.length > 0) {\n writer.writeString(\n 2,\n f\n );\n }\n};\n\n\n/**\n * optional uint32 limit = 1;\n * @return {number}\n */\nproto.vertexvis.protobuf.core.Pager.prototype.getLimit = function() {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 1, 0));\n};\n\n\n/** @param {number} value */\nproto.vertexvis.protobuf.core.Pager.prototype.setLimit = function(value) {\n jspb.Message.setProto3IntField(this, 1, value);\n};\n\n\n/**\n * optional string cursor = 2;\n * @return {string}\n */\nproto.vertexvis.protobuf.core.Pager.prototype.getCursor = function() {\n return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, \"\"));\n};\n\n\n/** @param {string} value */\nproto.vertexvis.protobuf.core.Pager.prototype.setCursor = function(value) {\n jspb.Message.setProto3StringField(this, 2, value);\n};\n\n\n\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.vertexvis.protobuf.core.OffsetPager = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, proto.vertexvis.protobuf.core.OffsetPager.oneofGroups_);\n};\ngoog.inherits(proto.vertexvis.protobuf.core.OffsetPager, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n proto.vertexvis.protobuf.core.OffsetPager.displayName = 'proto.vertexvis.protobuf.core.OffsetPager';\n}\n/**\n * Oneof group definitions for this message. Each group defines the field\n * numbers belonging to that group. When of these fields' value is set, all\n * other fields in the group are cleared. During deserialization, if multiple\n * fields are encountered for a group, only the last value seen will be kept.\n * @private {!Array<!Array<number>>}\n * @const\n */\nproto.vertexvis.protobuf.core.OffsetPager.oneofGroups_ = [[2,3]];\n\n/**\n * @enum {number}\n */\nproto.vertexvis.protobuf.core.OffsetPager.PagerCase = {\n PAGER_NOT_SET: 0,\n CURSOR: 2,\n OFFSET: 3\n};\n\n/**\n * @return {proto.vertexvis.protobuf.core.OffsetPager.PagerCase}\n */\nproto.vertexvis.protobuf.core.OffsetPager.prototype.getPagerCase = function() {\n return /** @type {proto.vertexvis.protobuf.core.OffsetPager.PagerCase} */(jspb.Message.computeOneofCase(this, proto.vertexvis.protobuf.core.OffsetPager.oneofGroups_[0]));\n};\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto suitable for use in Soy templates.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n * com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS.\n * @param {boolean=} opt_includeInstance Whether to include the JSPB instance\n * for transitional soy proto support: http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.vertexvis.protobuf.core.OffsetPager.prototype.toObject = function(opt_includeInstance) {\n return proto.vertexvis.protobuf.core.OffsetPager.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Whether to include the JSPB\n * instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.vertexvis.protobuf.core.OffsetPager} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.vertexvis.protobuf.core.OffsetPager.toObject = function(includeInstance, msg) {\n var f, obj = {\n limit: jspb.Message.getFieldWithDefault(msg, 1, 0),\n cursor: jspb.Message.getFieldWithDefault(msg, 2, \"\"),\n offset: jspb.Message.getFieldWithDefault(msg, 3, 0)\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.vertexvis.protobuf.core.OffsetPager}\n */\nproto.vertexvis.protobuf.core.OffsetPager.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.vertexvis.protobuf.core.OffsetPager;\n return proto.vertexvis.protobuf.core.OffsetPager.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.vertexvis.protobuf.core.OffsetPager} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.vertexvis.protobuf.core.OffsetPager}\n */\nproto.vertexvis.protobuf.core.OffsetPager.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {number} */ (reader.readUint32());\n msg.setLimit(value);\n break;\n case 2:\n var value = /** @type {string} */ (reader.readString());\n msg.setCursor(value);\n break;\n case 3:\n var value = /** @type {number} */ (reader.readUint32());\n msg.setOffset(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.vertexvis.protobuf.core.OffsetPager.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.vertexvis.protobuf.core.OffsetPager.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.vertexvis.protobuf.core.OffsetPager} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.vertexvis.protobuf.core.OffsetPager.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getLimit();\n if (f !== 0) {\n writer.writeUint32(\n 1,\n f\n );\n }\n f = /** @type {string} */ (jspb.Message.getField(message, 2));\n if (f != null) {\n writer.writeString(\n 2,\n f\n );\n }\n f = /** @type {number} */ (jspb.Message.getField(message, 3));\n if (f != null) {\n writer.writeUint32(\n 3,\n f\n );\n }\n};\n\n\n/**\n * optional uint32 limit = 1;\n * @return {number}\n */\nproto.vertexvis.protobuf.core.OffsetPager.prototype.getLimit = function() {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 1, 0));\n};\n\n\n/** @param {number} value */\nproto.vertexvis.protobuf.core.OffsetPager.prototype.setLimit = function(value) {\n jspb.Message.setProto3IntField(this, 1, value);\n};\n\n\n/**\n * optional string cursor = 2;\n * @return {string}\n */\nproto.vertexvis.protobuf.core.OffsetPager.prototype.getCursor = function() {\n return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, \"\"));\n};\n\n\n/** @param {string} value */\nproto.vertexvis.protobuf.core.OffsetPager.prototype.setCursor = function(value) {\n jspb.Message.setOneofField(this, 2, proto.vertexvis.protobuf.core.OffsetPager.oneofGroups_[0], value);\n};\n\n\nproto.vertexvis.protobuf.core.OffsetPager.prototype.clearCursor = function() {\n jspb.Message.setOneofField(this, 2, proto.vertexvis.protobuf.core.OffsetPager.oneofGroups_[0], undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {!boolean}\n */\nproto.vertexvis.protobuf.core.OffsetPager.prototype.hasCursor = function() {\n return jspb.Message.getField(this, 2) != null;\n};\n\n\n/**\n * optional uint32 offset = 3;\n * @return {number}\n */\nproto.vertexvis.protobuf.core.OffsetPager.prototype.getOffset = function() {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 3, 0));\n};\n\n\n/** @param {number} value */\nproto.vertexvis.protobuf.core.OffsetPager.prototype.setOffset = function(value) {\n jspb.Message.setOneofField(this, 3, proto.vertexvis.protobuf.core.OffsetPager.oneofGroups_[0], value);\n};\n\n\nproto.vertexvis.protobuf.core.OffsetPager.prototype.clearOffset = function() {\n jspb.Message.setOneofField(this, 3, proto.vertexvis.protobuf.core.OffsetPager.oneofGroups_[0], undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {!boolean}\n */\nproto.vertexvis.protobuf.core.OffsetPager.prototype.hasOffset = function() {\n return jspb.Message.getField(this, 3) != null;\n};\n\n\n\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.vertexvis.protobuf.core.Cursor = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.vertexvis.protobuf.core.Cursor, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n proto.vertexvis.protobuf.core.Cursor.displayName = 'proto.vertexvis.protobuf.core.Cursor';\n}\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto suitable for use in Soy templates.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n * com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS.\n * @param {boolean=} opt_includeInstance Whether to include the JSPB instance\n * for transitional soy proto support: http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.vertexvis.protobuf.core.Cursor.prototype.toObject = function(opt_includeInstance) {\n return proto.vertexvis.protobuf.core.Cursor.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Whether to include the JSPB\n * instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.vertexvis.protobuf.core.Cursor} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.vertexvis.protobuf.core.Cursor.toObject = function(includeInstance, msg) {\n var f, obj = {\n next: jspb.Message.getFieldWithDefault(msg, 1, \"\")\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.vertexvis.protobuf.core.Cursor}\n */\nproto.vertexvis.protobuf.core.Cursor.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.vertexvis.protobuf.core.Cursor;\n return proto.vertexvis.protobuf.core.Cursor.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.vertexvis.protobuf.core.Cursor} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.vertexvis.protobuf.core.Cursor}\n */\nproto.vertexvis.protobuf.core.Cursor.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {string} */ (reader.readString());\n msg.setNext(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.vertexvis.protobuf.core.Cursor.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.vertexvis.protobuf.core.Cursor.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.vertexvis.protobuf.core.Cursor} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.vertexvis.protobuf.core.Cursor.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getNext();\n if (f.length > 0) {\n writer.writeString(\n 1,\n f\n );\n }\n};\n\n\n/**\n * optional string next = 1;\n * @return {string}\n */\nproto.vertexvis.protobuf.core.Cursor.prototype.getNext = function() {\n return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, \"\"));\n};\n\n\n/** @param {string} value */\nproto.vertexvis.protobuf.core.Cursor.prototype.setNext = function(value) {\n jspb.Message.setProto3StringField(this, 1, value);\n};\n\n\n\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.vertexvis.protobuf.core.OffsetCursor = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.vertexvis.protobuf.core.OffsetCursor, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n proto.vertexvis.protobuf.core.OffsetCursor.displayName = 'proto.vertexvis.protobuf.core.OffsetCursor';\n}\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto suitable for use in Soy templates.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n * com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS.\n * @param {boolean=} opt_includeInstance Whether to include the JSPB instance\n * for transitional soy proto support: http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.vertexvis.protobuf.core.OffsetCursor.prototype.toObject = function(opt_includeInstance) {\n return proto.vertexvis.protobuf.core.OffsetCursor.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Whether to include the JSPB\n * instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.vertexvis.protobuf.core.OffsetCursor} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.vertexvis.protobuf.core.OffsetCursor.toObject = function(includeInstance, msg) {\n var f, obj = {\n total: jspb.Message.getFieldWithDefault(msg, 1, 0),\n next: jspb.Message.getFieldWithDefault(msg, 2, \"\")\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.vertexvis.protobuf.core.OffsetCursor}\n */\nproto.vertexvis.protobuf.core.OffsetCursor.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.vertexvis.protobuf.core.OffsetCursor;\n return proto.vertexvis.protobuf.core.OffsetCursor.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.vertexvis.protobuf.core.OffsetCursor} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.vertexvis.protobuf.core.OffsetCursor}\n */\nproto.vertexvis.protobuf.core.OffsetCursor.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {number} */ (reader.readUint32());\n msg.setTotal(value);\n break;\n case 2:\n var value = /** @type {string} */ (reader.readString());\n msg.setNext(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.vertexvis.protobuf.core.OffsetCursor.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.vertexvis.protobuf.core.OffsetCursor.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.vertexvis.protobuf.core.OffsetCursor} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.vertexvis.protobuf.core.OffsetCursor.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getTotal();\n if (f !== 0) {\n writer.writeUint32(\n 1,\n f\n );\n }\n f = message.getNext();\n if (f.length > 0) {\n writer.writeString(\n 2,\n f\n );\n }\n};\n\n\n/**\n * optional uint32 total = 1;\n * @return {number}\n */\nproto.vertexvis.protobuf.core.OffsetCursor.prototype.getTotal = function() {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 1, 0));\n};\n\n\n/** @param {number} value */\nproto.vertexvis.protobuf.core.OffsetCursor.prototype.setTotal = function(value) {\n jspb.Message.setProto3IntField(this, 1, value);\n};\n\n\n/**\n * optional string next = 2;\n * @return {string}\n */\nproto.vertexvis.protobuf.core.OffsetCursor.prototype.getNext = function() {\n return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, \"\"));\n};\n\n\n/** @param {string} value */\nproto.vertexvis.protobuf.core.OffsetCursor.prototype.setNext = function(value) {\n jspb.Message.setProto3StringField(this, 2, value);\n};\n\n\ngoog.object.extend(exports, proto.vertexvis.protobuf.core);\n","/**\n * @fileoverview\n * @enhanceable\n * @suppress {messageConventions} JS Compiler reports an error if a variable or\n * field starts with 'MSG_' and isn't a translatable message.\n * @public\n */\n// GENERATED CODE -- DO NOT EDIT!\n\nvar jspb = require('google-protobuf');\nvar goog = jspb;\nvar global = Function('return this')();\n\ngoog.exportSymbol('proto.vertexvis.protobuf.core.Uuid', null, global);\ngoog.exportSymbol('proto.vertexvis.protobuf.core.Uuid2l', null, global);\n\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.vertexvis.protobuf.core.Uuid = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.vertexvis.protobuf.core.Uuid, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n proto.vertexvis.protobuf.core.Uuid.displayName = 'proto.vertexvis.protobuf.core.Uuid';\n}\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto suitable for use in Soy templates.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n * com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS.\n * @param {boolean=} opt_includeInstance Whether to include the JSPB instance\n * for transitional soy proto support: http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.vertexvis.protobuf.core.Uuid.prototype.toObject = function(opt_includeInstance) {\n return proto.vertexvis.protobuf.core.Uuid.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Whether to include the JSPB\n * instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.vertexvis.protobuf.core.Uuid} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.vertexvis.protobuf.core.Uuid.toObject = function(includeInstance, msg) {\n var f, obj = {\n hex: jspb.Message.getFieldWithDefault(msg, 1, \"\")\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.vertexvis.protobuf.core.Uuid}\n */\nproto.vertexvis.protobuf.core.Uuid.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.vertexvis.protobuf.core.Uuid;\n return proto.vertexvis.protobuf.core.Uuid.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.vertexvis.protobuf.core.Uuid} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.vertexvis.protobuf.core.Uuid}\n */\nproto.vertexvis.protobuf.core.Uuid.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {string} */ (reader.readString());\n msg.setHex(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.vertexvis.protobuf.core.Uuid.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.vertexvis.protobuf.core.Uuid.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.vertexvis.protobuf.core.Uuid} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.vertexvis.protobuf.core.Uuid.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getHex();\n if (f.length > 0) {\n writer.writeString(\n 1,\n f\n );\n }\n};\n\n\n/**\n * optional string hex = 1;\n * @return {string}\n */\nproto.vertexvis.protobuf.core.Uuid.prototype.getHex = function() {\n return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, \"\"));\n};\n\n\n/** @param {string} value */\nproto.vertexvis.protobuf.core.Uuid.prototype.setHex = function(value) {\n jspb.Message.setProto3StringField(this, 1, value);\n};\n\n\n\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.vertexvis.protobuf.core.Uuid2l = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.vertexvis.protobuf.core.Uuid2l, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n proto.vertexvis.protobuf.core.Uuid2l.displayName = 'proto.vertexvis.protobuf.core.Uuid2l';\n}\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto suitable for use in Soy templates.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n * com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS.\n * @param {boolean=} opt_includeInstance Whether to include the JSPB instance\n * for transitional soy proto support: http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.vertexvis.protobuf.core.Uuid2l.prototype.toObject = function(opt_includeInstance) {\n return proto.vertexvis.protobuf.core.Uuid2l.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Whether to include the JSPB\n * instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.vertexvis.protobuf.core.Uuid2l} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.vertexvis.protobuf.core.Uuid2l.toObject = function(includeInstance, msg) {\n var f, obj = {\n msb: jspb.Message.getFieldWithDefault(msg, 1, \"0\"),\n lsb: jspb.Message.getFieldWithDefault(msg, 2, \"0\")\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.vertexvis.protobuf.core.Uuid2l}\n */\nproto.vertexvis.protobuf.core.Uuid2l.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.vertexvis.protobuf.core.Uuid2l;\n return proto.vertexvis.protobuf.core.Uuid2l.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.vertexvis.protobuf.core.Uuid2l} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.vertexvis.protobuf.core.Uuid2l}\n */\nproto.vertexvis.protobuf.core.Uuid2l.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {string} */ (reader.readSfixed64String());\n msg.setMsb(value);\n break;\n case 2:\n var value = /** @type {string} */ (reader.readSfixed64String());\n msg.setLsb(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.vertexvis.protobuf.core.Uuid2l.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.vertexvis.protobuf.core.Uuid2l.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.vertexvis.protobuf.core.Uuid2l} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.vertexvis.protobuf.core.Uuid2l.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getMsb();\n if (parseInt(f, 10) !== 0) {\n writer.writeSfixed64String(\n 1,\n f\n );\n }\n f = message.getLsb();\n if (parseInt(f, 10) !== 0) {\n writer.writeSfixed64String(\n 2,\n f\n );\n }\n};\n\n\n/**\n * optional sfixed64 msb = 1;\n * @return {string}\n */\nproto.vertexvis.protobuf.core.Uuid2l.prototype.getMsb = function() {\n return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, \"0\"));\n};\n\n\n/** @param {string} value */\nproto.vertexvis.protobuf.core.Uuid2l.prototype.setMsb = function(value) {\n jspb.Message.setProto3StringIntField(this, 1, value);\n};\n\n\n/**\n * optional sfixed64 lsb = 2;\n * @return {string}\n */\nproto.vertexvis.protobuf.core.Uuid2l.prototype.getLsb = function() {\n return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, \"0\"));\n};\n\n\n/** @param {string} value */\nproto.vertexvis.protobuf.core.Uuid2l.prototype.setLsb = function(value) {\n jspb.Message.setProto3StringIntField(this, 2, value);\n};\n\n\ngoog.object.extend(exports, proto.vertexvis.protobuf.core);\n","/**\n * @fileoverview\n * @enhanceable\n * @suppress {messageConventions} JS Compiler reports an error if a variable or\n * field starts with 'MSG_' and isn't a translatable message.\n * @public\n */\n// GENERATED CODE -- DO NOT EDIT!\n\nvar jspb = require('google-protobuf');\nvar goog = jspb;\nvar global = Function('return this')();\n\nvar core_protos_uuid_pb = require('../../core/protos/uuid_pb.js');\nvar google_protobuf_wrappers_pb = require('google-protobuf/google/protobuf/wrappers_pb.js');\ngoog.exportSymbol('proto.vertexvis.protobuf.scenetree.v1alpha1.ColumnKey', null, global);\ngoog.exportSymbol('proto.vertexvis.protobuf.scenetree.v1alpha1.KeepAlive', null, global);\ngoog.exportSymbol('proto.vertexvis.protobuf.scenetree.v1alpha1.ListChange', null, global);\ngoog.exportSymbol('proto.vertexvis.protobuf.scenetree.v1alpha1.Node', null, global);\ngoog.exportSymbol('proto.vertexvis.protobuf.scenetree.v1alpha1.Range', null, global);\ngoog.exportSymbol('proto.vertexvis.protobuf.scenetree.v1alpha1.StateChange', null, global);\ngoog.exportSymbol('proto.vertexvis.protobuf.scenetree.v1alpha1.TreeChangeType', null, global);\n\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.Node = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, proto.vertexvis.protobuf.scenetree.v1alpha1.Node.repeatedFields_, null);\n};\ngoog.inherits(proto.vertexvis.protobuf.scenetree.v1alpha1.Node, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n proto.vertexvis.protobuf.scenetree.v1alpha1.Node.displayName = 'proto.vertexvis.protobuf.scenetree.v1alpha1.Node';\n}\n/**\n * List of repeated fields within this message type.\n * @private {!Array<number>}\n * @const\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.Node.repeatedFields_ = [10];\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto suitable for use in Soy templates.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n * com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS.\n * @param {boolean=} opt_includeInstance Whether to include the JSPB instance\n * for transitional soy proto support: http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.Node.prototype.toObject = function(opt_includeInstance) {\n return proto.vertexvis.protobuf.scenetree.v1alpha1.Node.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Whether to include the JSPB\n * instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.vertexvis.protobuf.scenetree.v1alpha1.Node} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.Node.toObject = function(includeInstance, msg) {\n var f, obj = {\n id: (f = msg.getId()) && core_protos_uuid_pb.Uuid.toObject(includeInstance, f),\n depth: jspb.Message.getFieldWithDefault(msg, 2, 0),\n name: jspb.Message.getFieldWithDefault(msg, 3, \"\"),\n visible: jspb.Message.getFieldWithDefault(msg, 4, false),\n selected: jspb.Message.getFieldWithDefault(msg, 5, false),\n expanded: jspb.Message.getFieldWithDefault(msg, 6, false),\n isLeaf: jspb.Message.getFieldWithDefault(msg, 7, false),\n suppliedId: (f = msg.getSuppliedId()) && google_protobuf_wrappers_pb.StringValue.toObject(includeInstance, f),\n partiallyVisible: jspb.Message.getFieldWithDefault(msg, 9, false),\n columnsList: jspb.Message.getRepeatedField(msg, 10),\n filterHit: jspb.Message.getFieldWithDefault(msg, 11, false),\n phantom: jspb.Message.getFieldWithDefault(msg, 12, false),\n endItem: jspb.Message.getFieldWithDefault(msg, 13, false)\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.vertexvis.protobuf.scenetree.v1alpha1.Node}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.Node.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.vertexvis.protobuf.scenetree.v1alpha1.Node;\n return proto.vertexvis.protobuf.scenetree.v1alpha1.Node.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.vertexvis.protobuf.scenetree.v1alpha1.Node} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.vertexvis.protobuf.scenetree.v1alpha1.Node}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.Node.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = new core_protos_uuid_pb.Uuid;\n reader.readMessage(value,core_protos_uuid_pb.Uuid.deserializeBinaryFromReader);\n msg.setId(value);\n break;\n case 2:\n var value = /** @type {number} */ (reader.readUint32());\n msg.setDepth(value);\n break;\n case 3:\n var value = /** @type {string} */ (reader.readString());\n msg.setName(value);\n break;\n case 4:\n var value = /** @type {boolean} */ (reader.readBool());\n msg.setVisible(value);\n break;\n case 5:\n var value = /** @type {boolean} */ (reader.readBool());\n msg.setSelected(value);\n break;\n case 6:\n var value = /** @type {boolean} */ (reader.readBool());\n msg.setExpanded(value);\n break;\n case 7:\n var value = /** @type {boolean} */ (reader.readBool());\n msg.setIsLeaf(value);\n break;\n case 8:\n var value = new google_protobuf_wrappers_pb.StringValue;\n reader.readMessage(value,google_protobuf_wrappers_pb.StringValue.deserializeBinaryFromReader);\n msg.setSuppliedId(value);\n break;\n case 9:\n var value = /** @type {boolean} */ (reader.readBool());\n msg.setPartiallyVisible(value);\n break;\n case 10:\n var value = /** @type {string} */ (reader.readString());\n msg.addColumns(value);\n break;\n case 11:\n var value = /** @type {boolean} */ (reader.readBool());\n msg.setFilterHit(value);\n break;\n case 12:\n var value = /** @type {boolean} */ (reader.readBool());\n msg.setPhantom(value);\n break;\n case 13:\n var value = /** @type {boolean} */ (reader.readBool());\n msg.setEndItem(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.Node.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.vertexvis.protobuf.scenetree.v1alpha1.Node.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.vertexvis.protobuf.scenetree.v1alpha1.Node} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.Node.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getId();\n if (f != null) {\n writer.writeMessage(\n 1,\n f,\n core_protos_uuid_pb.Uuid.serializeBinaryToWriter\n );\n }\n f = message.getDepth();\n if (f !== 0) {\n writer.writeUint32(\n 2,\n f\n );\n }\n f = message.getName();\n if (f.length > 0) {\n writer.writeString(\n 3,\n f\n );\n }\n f = message.getVisible();\n if (f) {\n writer.writeBool(\n 4,\n f\n );\n }\n f = message.getSelected();\n if (f) {\n writer.writeBool(\n 5,\n f\n );\n }\n f = message.getExpanded();\n if (f) {\n writer.writeBool(\n 6,\n f\n );\n }\n f = message.getIsLeaf();\n if (f) {\n writer.writeBool(\n 7,\n f\n );\n }\n f = message.getSuppliedId();\n if (f != null) {\n writer.writeMessage(\n 8,\n f,\n google_protobuf_wrappers_pb.StringValue.serializeBinaryToWriter\n );\n }\n f = message.getPartiallyVisible();\n if (f) {\n writer.writeBool(\n 9,\n f\n );\n }\n f = message.getColumnsList();\n if (f.length > 0) {\n writer.writeRepeatedString(\n 10,\n f\n );\n }\n f = message.getFilterHit();\n if (f) {\n writer.writeBool(\n 11,\n f\n );\n }\n f = message.getPhantom();\n if (f) {\n writer.writeBool(\n 12,\n f\n );\n }\n f = message.getEndItem();\n if (f) {\n writer.writeBool(\n 13,\n f\n );\n }\n};\n\n\n/**\n * optional vertexvis.protobuf.core.Uuid id = 1;\n * @return {?proto.vertexvis.protobuf.core.Uuid}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.Node.prototype.getId = function() {\n return /** @type{?proto.vertexvis.protobuf.core.Uuid} */ (\n jspb.Message.getWrapperField(this, core_protos_uuid_pb.Uuid, 1));\n};\n\n\n/** @param {?proto.vertexvis.protobuf.core.Uuid|undefined} value */\nproto.vertexvis.protobuf.scenetree.v1alpha1.Node.prototype.setId = function(value) {\n jspb.Message.setWrapperField(this, 1, value);\n};\n\n\nproto.vertexvis.protobuf.scenetree.v1alpha1.Node.prototype.clearId = function() {\n this.setId(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {!boolean}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.Node.prototype.hasId = function() {\n return jspb.Message.getField(this, 1) != null;\n};\n\n\n/**\n * optional uint32 depth = 2;\n * @return {number}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.Node.prototype.getDepth = function() {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 2, 0));\n};\n\n\n/** @param {number} value */\nproto.vertexvis.protobuf.scenetree.v1alpha1.Node.prototype.setDepth = function(value) {\n jspb.Message.setProto3IntField(this, 2, value);\n};\n\n\n/**\n * optional string name = 3;\n * @return {string}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.Node.prototype.getName = function() {\n return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, \"\"));\n};\n\n\n/** @param {string} value */\nproto.vertexvis.protobuf.scenetree.v1alpha1.Node.prototype.setName = function(value) {\n jspb.Message.setProto3StringField(this, 3, value);\n};\n\n\n/**\n * optional bool visible = 4;\n * Note that Boolean fields may be set to 0/1 when serialized from a Java server.\n * You should avoid comparisons like {@code val === true/false} in those cases.\n * @return {boolean}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.Node.prototype.getVisible = function() {\n return /** @type {boolean} */ (jspb.Message.getFieldWithDefault(this, 4, false));\n};\n\n\n/** @param {boolean} value */\nproto.vertexvis.protobuf.scenetree.v1alpha1.Node.prototype.setVisible = function(value) {\n jspb.Message.setProto3BooleanField(this, 4, value);\n};\n\n\n/**\n * optional bool selected = 5;\n * Note that Boolean fields may be set to 0/1 when serialized from a Java server.\n * You should avoid comparisons like {@code val === true/false} in those cases.\n * @return {boolean}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.Node.prototype.getSelected = function() {\n return /** @type {boolean} */ (jspb.Message.getFieldWithDefault(this, 5, false));\n};\n\n\n/** @param {boolean} value */\nproto.vertexvis.protobuf.scenetree.v1alpha1.Node.prototype.setSelected = function(value) {\n jspb.Message.setProto3BooleanField(this, 5, value);\n};\n\n\n/**\n * optional bool expanded = 6;\n * Note that Boolean fields may be set to 0/1 when serialized from a Java server.\n * You should avoid comparisons like {@code val === true/false} in those cases.\n * @return {boolean}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.Node.prototype.getExpanded = function() {\n return /** @type {boolean} */ (jspb.Message.getFieldWithDefault(this, 6, false));\n};\n\n\n/** @param {boolean} value */\nproto.vertexvis.protobuf.scenetree.v1alpha1.Node.prototype.setExpanded = function(value) {\n jspb.Message.setProto3BooleanField(this, 6, value);\n};\n\n\n/**\n * optional bool is_leaf = 7;\n * Note that Boolean fields may be set to 0/1 when serialized from a Java server.\n * You should avoid comparisons like {@code val === true/false} in those cases.\n * @return {boolean}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.Node.prototype.getIsLeaf = function() {\n return /** @type {boolean} */ (jspb.Message.getFieldWithDefault(this, 7, false));\n};\n\n\n/** @param {boolean} value */\nproto.vertexvis.protobuf.scenetree.v1alpha1.Node.prototype.setIsLeaf = function(value) {\n jspb.Message.setProto3BooleanField(this, 7, value);\n};\n\n\n/**\n * optional google.protobuf.StringValue supplied_id = 8;\n * @return {?proto.google.protobuf.StringValue}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.Node.prototype.getSuppliedId = function() {\n return /** @type{?proto.google.protobuf.StringValue} */ (\n jspb.Message.getWrapperField(this, google_protobuf_wrappers_pb.StringValue, 8));\n};\n\n\n/** @param {?proto.google.protobuf.StringValue|undefined} value */\nproto.vertexvis.protobuf.scenetree.v1alpha1.Node.prototype.setSuppliedId = function(value) {\n jspb.Message.setWrapperField(this, 8, value);\n};\n\n\nproto.vertexvis.protobuf.scenetree.v1alpha1.Node.prototype.clearSuppliedId = function() {\n this.setSuppliedId(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {!boolean}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.Node.prototype.hasSuppliedId = function() {\n return jspb.Message.getField(this, 8) != null;\n};\n\n\n/**\n * optional bool partially_visible = 9;\n * Note that Boolean fields may be set to 0/1 when serialized from a Java server.\n * You should avoid comparisons like {@code val === true/false} in those cases.\n * @return {boolean}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.Node.prototype.getPartiallyVisible = function() {\n return /** @type {boolean} */ (jspb.Message.getFieldWithDefault(this, 9, false));\n};\n\n\n/** @param {boolean} value */\nproto.vertexvis.protobuf.scenetree.v1alpha1.Node.prototype.setPartiallyVisible = function(value) {\n jspb.Message.setProto3BooleanField(this, 9, value);\n};\n\n\n/**\n * repeated string columns = 10;\n * @return {!Array<string>}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.Node.prototype.getColumnsList = function() {\n return /** @type {!Array<string>} */ (jspb.Message.getRepeatedField(this, 10));\n};\n\n\n/** @param {!Array<string>} value */\nproto.vertexvis.protobuf.scenetree.v1alpha1.Node.prototype.setColumnsList = function(value) {\n jspb.Message.setField(this, 10, value || []);\n};\n\n\n/**\n * @param {!string} value\n * @param {number=} opt_index\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.Node.prototype.addColumns = function(value, opt_index) {\n jspb.Message.addToRepeatedField(this, 10, value, opt_index);\n};\n\n\nproto.vertexvis.protobuf.scenetree.v1alpha1.Node.prototype.clearColumnsList = function() {\n this.setColumnsList([]);\n};\n\n\n/**\n * optional bool filter_hit = 11;\n * Note that Boolean fields may be set to 0/1 when serialized from a Java server.\n * You should avoid comparisons like {@code val === true/false} in those cases.\n * @return {boolean}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.Node.prototype.getFilterHit = function() {\n return /** @type {boolean} */ (jspb.Message.getFieldWithDefault(this, 11, false));\n};\n\n\n/** @param {boolean} value */\nproto.vertexvis.protobuf.scenetree.v1alpha1.Node.prototype.setFilterHit = function(value) {\n jspb.Message.setProto3BooleanField(this, 11, value);\n};\n\n\n/**\n * optional bool phantom = 12;\n * Note that Boolean fields may be set to 0/1 when serialized from a Java server.\n * You should avoid comparisons like {@code val === true/false} in those cases.\n * @return {boolean}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.Node.prototype.getPhantom = function() {\n return /** @type {boolean} */ (jspb.Message.getFieldWithDefault(this, 12, false));\n};\n\n\n/** @param {boolean} value */\nproto.vertexvis.protobuf.scenetree.v1alpha1.Node.prototype.setPhantom = function(value) {\n jspb.Message.setProto3BooleanField(this, 12, value);\n};\n\n\n/**\n * optional bool end_item = 13;\n * Note that Boolean fields may be set to 0/1 when serialized from a Java server.\n * You should avoid comparisons like {@code val === true/false} in those cases.\n * @return {boolean}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.Node.prototype.getEndItem = function() {\n return /** @type {boolean} */ (jspb.Message.getFieldWithDefault(this, 13, false));\n};\n\n\n/** @param {boolean} value */\nproto.vertexvis.protobuf.scenetree.v1alpha1.Node.prototype.setEndItem = function(value) {\n jspb.Message.setProto3BooleanField(this, 13, value);\n};\n\n\n\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.ListChange = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.vertexvis.protobuf.scenetree.v1alpha1.ListChange, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n proto.vertexvis.protobuf.scenetree.v1alpha1.ListChange.displayName = 'proto.vertexvis.protobuf.scenetree.v1alpha1.ListChange';\n}\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto suitable for use in Soy templates.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n * com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS.\n * @param {boolean=} opt_includeInstance Whether to include the JSPB instance\n * for transitional soy proto support: http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.ListChange.prototype.toObject = function(opt_includeInstance) {\n return proto.vertexvis.protobuf.scenetree.v1alpha1.ListChange.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Whether to include the JSPB\n * instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.vertexvis.protobuf.scenetree.v1alpha1.ListChange} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.ListChange.toObject = function(includeInstance, msg) {\n var f, obj = {\n start: jspb.Message.getFieldWithDefault(msg, 1, 0)\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.vertexvis.protobuf.scenetree.v1alpha1.ListChange}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.ListChange.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.vertexvis.protobuf.scenetree.v1alpha1.ListChange;\n return proto.vertexvis.protobuf.scenetree.v1alpha1.ListChange.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.vertexvis.protobuf.scenetree.v1alpha1.ListChange} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.vertexvis.protobuf.scenetree.v1alpha1.ListChange}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.ListChange.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {number} */ (reader.readInt32());\n msg.setStart(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.ListChange.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.vertexvis.protobuf.scenetree.v1alpha1.ListChange.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.vertexvis.protobuf.scenetree.v1alpha1.ListChange} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.ListChange.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getStart();\n if (f !== 0) {\n writer.writeInt32(\n 1,\n f\n );\n }\n};\n\n\n/**\n * optional int32 start = 1;\n * @return {number}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.ListChange.prototype.getStart = function() {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 1, 0));\n};\n\n\n/** @param {number} value */\nproto.vertexvis.protobuf.scenetree.v1alpha1.ListChange.prototype.setStart = function(value) {\n jspb.Message.setProto3IntField(this, 1, value);\n};\n\n\n\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.Range = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.vertexvis.protobuf.scenetree.v1alpha1.Range, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n proto.vertexvis.protobuf.scenetree.v1alpha1.Range.displayName = 'proto.vertexvis.protobuf.scenetree.v1alpha1.Range';\n}\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto suitable for use in Soy templates.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n * com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS.\n * @param {boolean=} opt_includeInstance Whether to include the JSPB instance\n * for transitional soy proto support: http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.Range.prototype.toObject = function(opt_includeInstance) {\n return proto.vertexvis.protobuf.scenetree.v1alpha1.Range.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Whether to include the JSPB\n * instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.vertexvis.protobuf.scenetree.v1alpha1.Range} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.Range.toObject = function(includeInstance, msg) {\n var f, obj = {\n start: jspb.Message.getFieldWithDefault(msg, 1, 0),\n end: jspb.Message.getFieldWithDefault(msg, 2, 0)\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.vertexvis.protobuf.scenetree.v1alpha1.Range}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.Range.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.vertexvis.protobuf.scenetree.v1alpha1.Range;\n return proto.vertexvis.protobuf.scenetree.v1alpha1.Range.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.vertexvis.protobuf.scenetree.v1alpha1.Range} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.vertexvis.protobuf.scenetree.v1alpha1.Range}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.Range.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {number} */ (reader.readInt32());\n msg.setStart(value);\n break;\n case 2:\n var value = /** @type {number} */ (reader.readInt32());\n msg.setEnd(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.Range.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.vertexvis.protobuf.scenetree.v1alpha1.Range.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.vertexvis.protobuf.scenetree.v1alpha1.Range} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.Range.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getStart();\n if (f !== 0) {\n writer.writeInt32(\n 1,\n f\n );\n }\n f = message.getEnd();\n if (f !== 0) {\n writer.writeInt32(\n 2,\n f\n );\n }\n};\n\n\n/**\n * optional int32 start = 1;\n * @return {number}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.Range.prototype.getStart = function() {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 1, 0));\n};\n\n\n/** @param {number} value */\nproto.vertexvis.protobuf.scenetree.v1alpha1.Range.prototype.setStart = function(value) {\n jspb.Message.setProto3IntField(this, 1, value);\n};\n\n\n/**\n * optional int32 end = 2;\n * @return {number}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.Range.prototype.getEnd = function() {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 2, 0));\n};\n\n\n/** @param {number} value */\nproto.vertexvis.protobuf.scenetree.v1alpha1.Range.prototype.setEnd = function(value) {\n jspb.Message.setProto3IntField(this, 2, value);\n};\n\n\n\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.StateChange = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, proto.vertexvis.protobuf.scenetree.v1alpha1.StateChange.repeatedFields_, null);\n};\ngoog.inherits(proto.vertexvis.protobuf.scenetree.v1alpha1.StateChange, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n proto.vertexvis.protobuf.scenetree.v1alpha1.StateChange.displayName = 'proto.vertexvis.protobuf.scenetree.v1alpha1.StateChange';\n}\n/**\n * List of repeated fields within this message type.\n * @private {!Array<number>}\n * @const\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.StateChange.repeatedFields_ = [1,2,3,4,5];\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto suitable for use in Soy templates.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n * com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS.\n * @param {boolean=} opt_includeInstance Whether to include the JSPB instance\n * for transitional soy proto support: http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.StateChange.prototype.toObject = function(opt_includeInstance) {\n return proto.vertexvis.protobuf.scenetree.v1alpha1.StateChange.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Whether to include the JSPB\n * instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.vertexvis.protobuf.scenetree.v1alpha1.StateChange} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.StateChange.toObject = function(includeInstance, msg) {\n var f, obj = {\n hiddenList: jspb.Message.toObjectList(msg.getHiddenList(),\n proto.vertexvis.protobuf.scenetree.v1alpha1.Range.toObject, includeInstance),\n shownList: jspb.Message.toObjectList(msg.getShownList(),\n proto.vertexvis.protobuf.scenetree.v1alpha1.Range.toObject, includeInstance),\n selectedList: jspb.Message.toObjectList(msg.getSelectedList(),\n proto.vertexvis.protobuf.scenetree.v1alpha1.Range.toObject, includeInstance),\n deselectedList: jspb.Message.toObjectList(msg.getDeselectedList(),\n proto.vertexvis.protobuf.scenetree.v1alpha1.Range.toObject, includeInstance),\n partiallyVisibleList: jspb.Message.toObjectList(msg.getPartiallyVisibleList(),\n proto.vertexvis.protobuf.scenetree.v1alpha1.Range.toObject, includeInstance)\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.vertexvis.protobuf.scenetree.v1alpha1.StateChange}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.StateChange.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.vertexvis.protobuf.scenetree.v1alpha1.StateChange;\n return proto.vertexvis.protobuf.scenetree.v1alpha1.StateChange.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.vertexvis.protobuf.scenetree.v1alpha1.StateChange} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.vertexvis.protobuf.scenetree.v1alpha1.StateChange}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.StateChange.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = new proto.vertexvis.protobuf.scenetree.v1alpha1.Range;\n reader.readMessage(value,proto.vertexvis.protobuf.scenetree.v1alpha1.Range.deserializeBinaryFromReader);\n msg.addHidden(value);\n break;\n case 2:\n var value = new proto.vertexvis.protobuf.scenetree.v1alpha1.Range;\n reader.readMessage(value,proto.vertexvis.protobuf.scenetree.v1alpha1.Range.deserializeBinaryFromReader);\n msg.addShown(value);\n break;\n case 3:\n var value = new proto.vertexvis.protobuf.scenetree.v1alpha1.Range;\n reader.readMessage(value,proto.vertexvis.protobuf.scenetree.v1alpha1.Range.deserializeBinaryFromReader);\n msg.addSelected(value);\n break;\n case 4:\n var value = new proto.vertexvis.protobuf.scenetree.v1alpha1.Range;\n reader.readMessage(value,proto.vertexvis.protobuf.scenetree.v1alpha1.Range.deserializeBinaryFromReader);\n msg.addDeselected(value);\n break;\n case 5:\n var value = new proto.vertexvis.protobuf.scenetree.v1alpha1.Range;\n reader.readMessage(value,proto.vertexvis.protobuf.scenetree.v1alpha1.Range.deserializeBinaryFromReader);\n msg.addPartiallyVisible(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.StateChange.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.vertexvis.protobuf.scenetree.v1alpha1.StateChange.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.vertexvis.protobuf.scenetree.v1alpha1.StateChange} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.StateChange.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getHiddenList();\n if (f.length > 0) {\n writer.writeRepeatedMessage(\n 1,\n f,\n proto.vertexvis.protobuf.scenetree.v1alpha1.Range.serializeBinaryToWriter\n );\n }\n f = message.getShownList();\n if (f.length > 0) {\n writer.writeRepeatedMessage(\n 2,\n f,\n proto.vertexvis.protobuf.scenetree.v1alpha1.Range.serializeBinaryToWriter\n );\n }\n f = message.getSelectedList();\n if (f.length > 0) {\n writer.writeRepeatedMessage(\n 3,\n f,\n proto.vertexvis.protobuf.scenetree.v1alpha1.Range.serializeBinaryToWriter\n );\n }\n f = message.getDeselectedList();\n if (f.length > 0) {\n writer.writeRepeatedMessage(\n 4,\n f,\n proto.vertexvis.protobuf.scenetree.v1alpha1.Range.serializeBinaryToWriter\n );\n }\n f = message.getPartiallyVisibleList();\n if (f.length > 0) {\n writer.writeRepeatedMessage(\n 5,\n f,\n proto.vertexvis.protobuf.scenetree.v1alpha1.Range.serializeBinaryToWriter\n );\n }\n};\n\n\n/**\n * repeated Range hidden = 1;\n * @return {!Array<!proto.vertexvis.protobuf.scenetree.v1alpha1.Range>}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.StateChange.prototype.getHiddenList = function() {\n return /** @type{!Array<!proto.vertexvis.protobuf.scenetree.v1alpha1.Range>} */ (\n jspb.Message.getRepeatedWrapperField(this, proto.vertexvis.protobuf.scenetree.v1alpha1.Range, 1));\n};\n\n\n/** @param {!Array<!proto.vertexvis.protobuf.scenetree.v1alpha1.Range>} value */\nproto.vertexvis.protobuf.scenetree.v1alpha1.StateChange.prototype.setHiddenList = function(value) {\n jspb.Message.setRepeatedWrapperField(this, 1, value);\n};\n\n\n/**\n * @param {!proto.vertexvis.protobuf.scenetree.v1alpha1.Range=} opt_value\n * @param {number=} opt_index\n * @return {!proto.vertexvis.protobuf.scenetree.v1alpha1.Range}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.StateChange.prototype.addHidden = function(opt_value, opt_index) {\n return jspb.Message.addToRepeatedWrapperField(this, 1, opt_value, proto.vertexvis.protobuf.scenetree.v1alpha1.Range, opt_index);\n};\n\n\nproto.vertexvis.protobuf.scenetree.v1alpha1.StateChange.prototype.clearHiddenList = function() {\n this.setHiddenList([]);\n};\n\n\n/**\n * repeated Range shown = 2;\n * @return {!Array<!proto.vertexvis.protobuf.scenetree.v1alpha1.Range>}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.StateChange.prototype.getShownList = function() {\n return /** @type{!Array<!proto.vertexvis.protobuf.scenetree.v1alpha1.Range>} */ (\n jspb.Message.getRepeatedWrapperField(this, proto.vertexvis.protobuf.scenetree.v1alpha1.Range, 2));\n};\n\n\n/** @param {!Array<!proto.vertexvis.protobuf.scenetree.v1alpha1.Range>} value */\nproto.vertexvis.protobuf.scenetree.v1alpha1.StateChange.prototype.setShownList = function(value) {\n jspb.Message.setRepeatedWrapperField(this, 2, value);\n};\n\n\n/**\n * @param {!proto.vertexvis.protobuf.scenetree.v1alpha1.Range=} opt_value\n * @param {number=} opt_index\n * @return {!proto.vertexvis.protobuf.scenetree.v1alpha1.Range}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.StateChange.prototype.addShown = function(opt_value, opt_index) {\n return jspb.Message.addToRepeatedWrapperField(this, 2, opt_value, proto.vertexvis.protobuf.scenetree.v1alpha1.Range, opt_index);\n};\n\n\nproto.vertexvis.protobuf.scenetree.v1alpha1.StateChange.prototype.clearShownList = function() {\n this.setShownList([]);\n};\n\n\n/**\n * repeated Range selected = 3;\n * @return {!Array<!proto.vertexvis.protobuf.scenetree.v1alpha1.Range>}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.StateChange.prototype.getSelectedList = function() {\n return /** @type{!Array<!proto.vertexvis.protobuf.scenetree.v1alpha1.Range>} */ (\n jspb.Message.getRepeatedWrapperField(this, proto.vertexvis.protobuf.scenetree.v1alpha1.Range, 3));\n};\n\n\n/** @param {!Array<!proto.vertexvis.protobuf.scenetree.v1alpha1.Range>} value */\nproto.vertexvis.protobuf.scenetree.v1alpha1.StateChange.prototype.setSelectedList = function(value) {\n jspb.Message.setRepeatedWrapperField(this, 3, value);\n};\n\n\n/**\n * @param {!proto.vertexvis.protobuf.scenetree.v1alpha1.Range=} opt_value\n * @param {number=} opt_index\n * @return {!proto.vertexvis.protobuf.scenetree.v1alpha1.Range}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.StateChange.prototype.addSelected = function(opt_value, opt_index) {\n return jspb.Message.addToRepeatedWrapperField(this, 3, opt_value, proto.vertexvis.protobuf.scenetree.v1alpha1.Range, opt_index);\n};\n\n\nproto.vertexvis.protobuf.scenetree.v1alpha1.StateChange.prototype.clearSelectedList = function() {\n this.setSelectedList([]);\n};\n\n\n/**\n * repeated Range deselected = 4;\n * @return {!Array<!proto.vertexvis.protobuf.scenetree.v1alpha1.Range>}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.StateChange.prototype.getDeselectedList = function() {\n return /** @type{!Array<!proto.vertexvis.protobuf.scenetree.v1alpha1.Range>} */ (\n jspb.Message.getRepeatedWrapperField(this, proto.vertexvis.protobuf.scenetree.v1alpha1.Range, 4));\n};\n\n\n/** @param {!Array<!proto.vertexvis.protobuf.scenetree.v1alpha1.Range>} value */\nproto.vertexvis.protobuf.scenetree.v1alpha1.StateChange.prototype.setDeselectedList = function(value) {\n jspb.Message.setRepeatedWrapperField(this, 4, value);\n};\n\n\n/**\n * @param {!proto.vertexvis.protobuf.scenetree.v1alpha1.Range=} opt_value\n * @param {number=} opt_index\n * @return {!proto.vertexvis.protobuf.scenetree.v1alpha1.Range}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.StateChange.prototype.addDeselected = function(opt_value, opt_index) {\n return jspb.Message.addToRepeatedWrapperField(this, 4, opt_value, proto.vertexvis.protobuf.scenetree.v1alpha1.Range, opt_index);\n};\n\n\nproto.vertexvis.protobuf.scenetree.v1alpha1.StateChange.prototype.clearDeselectedList = function() {\n this.setDeselectedList([]);\n};\n\n\n/**\n * repeated Range partially_visible = 5;\n * @return {!Array<!proto.vertexvis.protobuf.scenetree.v1alpha1.Range>}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.StateChange.prototype.getPartiallyVisibleList = function() {\n return /** @type{!Array<!proto.vertexvis.protobuf.scenetree.v1alpha1.Range>} */ (\n jspb.Message.getRepeatedWrapperField(this, proto.vertexvis.protobuf.scenetree.v1alpha1.Range, 5));\n};\n\n\n/** @param {!Array<!proto.vertexvis.protobuf.scenetree.v1alpha1.Range>} value */\nproto.vertexvis.protobuf.scenetree.v1alpha1.StateChange.prototype.setPartiallyVisibleList = function(value) {\n jspb.Message.setRepeatedWrapperField(this, 5, value);\n};\n\n\n/**\n * @param {!proto.vertexvis.protobuf.scenetree.v1alpha1.Range=} opt_value\n * @param {number=} opt_index\n * @return {!proto.vertexvis.protobuf.scenetree.v1alpha1.Range}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.StateChange.prototype.addPartiallyVisible = function(opt_value, opt_index) {\n return jspb.Message.addToRepeatedWrapperField(this, 5, opt_value, proto.vertexvis.protobuf.scenetree.v1alpha1.Range, opt_index);\n};\n\n\nproto.vertexvis.protobuf.scenetree.v1alpha1.StateChange.prototype.clearPartiallyVisibleList = function() {\n this.setPartiallyVisibleList([]);\n};\n\n\n\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.KeepAlive = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.vertexvis.protobuf.scenetree.v1alpha1.KeepAlive, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n proto.vertexvis.protobuf.scenetree.v1alpha1.KeepAlive.displayName = 'proto.vertexvis.protobuf.scenetree.v1alpha1.KeepAlive';\n}\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto suitable for use in Soy templates.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n * com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS.\n * @param {boolean=} opt_includeInstance Whether to include the JSPB instance\n * for transitional soy proto support: http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.KeepAlive.prototype.toObject = function(opt_includeInstance) {\n return proto.vertexvis.protobuf.scenetree.v1alpha1.KeepAlive.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Whether to include the JSPB\n * instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.vertexvis.protobuf.scenetree.v1alpha1.KeepAlive} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.KeepAlive.toObject = function(includeInstance, msg) {\n var f, obj = {\n\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.vertexvis.protobuf.scenetree.v1alpha1.KeepAlive}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.KeepAlive.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.vertexvis.protobuf.scenetree.v1alpha1.KeepAlive;\n return proto.vertexvis.protobuf.scenetree.v1alpha1.KeepAlive.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.vertexvis.protobuf.scenetree.v1alpha1.KeepAlive} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.vertexvis.protobuf.scenetree.v1alpha1.KeepAlive}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.KeepAlive.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.KeepAlive.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.vertexvis.protobuf.scenetree.v1alpha1.KeepAlive.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.vertexvis.protobuf.scenetree.v1alpha1.KeepAlive} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.KeepAlive.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n};\n\n\n\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.TreeChangeType = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, proto.vertexvis.protobuf.scenetree.v1alpha1.TreeChangeType.oneofGroups_);\n};\ngoog.inherits(proto.vertexvis.protobuf.scenetree.v1alpha1.TreeChangeType, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n proto.vertexvis.protobuf.scenetree.v1alpha1.TreeChangeType.displayName = 'proto.vertexvis.protobuf.scenetree.v1alpha1.TreeChangeType';\n}\n/**\n * Oneof group definitions for this message. Each group defines the field\n * numbers belonging to that group. When of these fields' value is set, all\n * other fields in the group are cleared. During deserialization, if multiple\n * fields are encountered for a group, only the last value seen will be kept.\n * @private {!Array<!Array<number>>}\n * @const\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.TreeChangeType.oneofGroups_ = [[1,2,3]];\n\n/**\n * @enum {number}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.TreeChangeType.SealedValueCase = {\n SEALED_VALUE_NOT_SET: 0,\n LIST_CHANGE: 1,\n RANGES: 2,\n KEEP_ALIVE: 3\n};\n\n/**\n * @return {proto.vertexvis.protobuf.scenetree.v1alpha1.TreeChangeType.SealedValueCase}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.TreeChangeType.prototype.getSealedValueCase = function() {\n return /** @type {proto.vertexvis.protobuf.scenetree.v1alpha1.TreeChangeType.SealedValueCase} */(jspb.Message.computeOneofCase(this, proto.vertexvis.protobuf.scenetree.v1alpha1.TreeChangeType.oneofGroups_[0]));\n};\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto suitable for use in Soy templates.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n * com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS.\n * @param {boolean=} opt_includeInstance Whether to include the JSPB instance\n * for transitional soy proto support: http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.TreeChangeType.prototype.toObject = function(opt_includeInstance) {\n return proto.vertexvis.protobuf.scenetree.v1alpha1.TreeChangeType.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Whether to include the JSPB\n * instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.vertexvis.protobuf.scenetree.v1alpha1.TreeChangeType} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.TreeChangeType.toObject = function(includeInstance, msg) {\n var f, obj = {\n listChange: (f = msg.getListChange()) && proto.vertexvis.protobuf.scenetree.v1alpha1.ListChange.toObject(includeInstance, f),\n ranges: (f = msg.getRanges()) && proto.vertexvis.protobuf.scenetree.v1alpha1.StateChange.toObject(includeInstance, f),\n keepAlive: (f = msg.getKeepAlive()) && proto.vertexvis.protobuf.scenetree.v1alpha1.KeepAlive.toObject(includeInstance, f)\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.vertexvis.protobuf.scenetree.v1alpha1.TreeChangeType}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.TreeChangeType.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.vertexvis.protobuf.scenetree.v1alpha1.TreeChangeType;\n return proto.vertexvis.protobuf.scenetree.v1alpha1.TreeChangeType.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.vertexvis.protobuf.scenetree.v1alpha1.TreeChangeType} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.vertexvis.protobuf.scenetree.v1alpha1.TreeChangeType}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.TreeChangeType.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = new proto.vertexvis.protobuf.scenetree.v1alpha1.ListChange;\n reader.readMessage(value,proto.vertexvis.protobuf.scenetree.v1alpha1.ListChange.deserializeBinaryFromReader);\n msg.setListChange(value);\n break;\n case 2:\n var value = new proto.vertexvis.protobuf.scenetree.v1alpha1.StateChange;\n reader.readMessage(value,proto.vertexvis.protobuf.scenetree.v1alpha1.StateChange.deserializeBinaryFromReader);\n msg.setRanges(value);\n break;\n case 3:\n var value = new proto.vertexvis.protobuf.scenetree.v1alpha1.KeepAlive;\n reader.readMessage(value,proto.vertexvis.protobuf.scenetree.v1alpha1.KeepAlive.deserializeBinaryFromReader);\n msg.setKeepAlive(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.TreeChangeType.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.vertexvis.protobuf.scenetree.v1alpha1.TreeChangeType.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.vertexvis.protobuf.scenetree.v1alpha1.TreeChangeType} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.TreeChangeType.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getListChange();\n if (f != null) {\n writer.writeMessage(\n 1,\n f,\n proto.vertexvis.protobuf.scenetree.v1alpha1.ListChange.serializeBinaryToWriter\n );\n }\n f = message.getRanges();\n if (f != null) {\n writer.writeMessage(\n 2,\n f,\n proto.vertexvis.protobuf.scenetree.v1alpha1.StateChange.serializeBinaryToWriter\n );\n }\n f = message.getKeepAlive();\n if (f != null) {\n writer.writeMessage(\n 3,\n f,\n proto.vertexvis.protobuf.scenetree.v1alpha1.KeepAlive.serializeBinaryToWriter\n );\n }\n};\n\n\n/**\n * optional ListChange list_change = 1;\n * @return {?proto.vertexvis.protobuf.scenetree.v1alpha1.ListChange}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.TreeChangeType.prototype.getListChange = function() {\n return /** @type{?proto.vertexvis.protobuf.scenetree.v1alpha1.ListChange} */ (\n jspb.Message.getWrapperField(this, proto.vertexvis.protobuf.scenetree.v1alpha1.ListChange, 1));\n};\n\n\n/** @param {?proto.vertexvis.protobuf.scenetree.v1alpha1.ListChange|undefined} value */\nproto.vertexvis.protobuf.scenetree.v1alpha1.TreeChangeType.prototype.setListChange = function(value) {\n jspb.Message.setOneofWrapperField(this, 1, proto.vertexvis.protobuf.scenetree.v1alpha1.TreeChangeType.oneofGroups_[0], value);\n};\n\n\nproto.vertexvis.protobuf.scenetree.v1alpha1.TreeChangeType.prototype.clearListChange = function() {\n this.setListChange(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {!boolean}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.TreeChangeType.prototype.hasListChange = function() {\n return jspb.Message.getField(this, 1) != null;\n};\n\n\n/**\n * optional StateChange ranges = 2;\n * @return {?proto.vertexvis.protobuf.scenetree.v1alpha1.StateChange}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.TreeChangeType.prototype.getRanges = function() {\n return /** @type{?proto.vertexvis.protobuf.scenetree.v1alpha1.StateChange} */ (\n jspb.Message.getWrapperField(this, proto.vertexvis.protobuf.scenetree.v1alpha1.StateChange, 2));\n};\n\n\n/** @param {?proto.vertexvis.protobuf.scenetree.v1alpha1.StateChange|undefined} value */\nproto.vertexvis.protobuf.scenetree.v1alpha1.TreeChangeType.prototype.setRanges = function(value) {\n jspb.Message.setOneofWrapperField(this, 2, proto.vertexvis.protobuf.scenetree.v1alpha1.TreeChangeType.oneofGroups_[0], value);\n};\n\n\nproto.vertexvis.protobuf.scenetree.v1alpha1.TreeChangeType.prototype.clearRanges = function() {\n this.setRanges(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {!boolean}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.TreeChangeType.prototype.hasRanges = function() {\n return jspb.Message.getField(this, 2) != null;\n};\n\n\n/**\n * optional KeepAlive keep_alive = 3;\n * @return {?proto.vertexvis.protobuf.scenetree.v1alpha1.KeepAlive}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.TreeChangeType.prototype.getKeepAlive = function() {\n return /** @type{?proto.vertexvis.protobuf.scenetree.v1alpha1.KeepAlive} */ (\n jspb.Message.getWrapperField(this, proto.vertexvis.protobuf.scenetree.v1alpha1.KeepAlive, 3));\n};\n\n\n/** @param {?proto.vertexvis.protobuf.scenetree.v1alpha1.KeepAlive|undefined} value */\nproto.vertexvis.protobuf.scenetree.v1alpha1.TreeChangeType.prototype.setKeepAlive = function(value) {\n jspb.Message.setOneofWrapperField(this, 3, proto.vertexvis.protobuf.scenetree.v1alpha1.TreeChangeType.oneofGroups_[0], value);\n};\n\n\nproto.vertexvis.protobuf.scenetree.v1alpha1.TreeChangeType.prototype.clearKeepAlive = function() {\n this.setKeepAlive(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {!boolean}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.TreeChangeType.prototype.hasKeepAlive = function() {\n return jspb.Message.getField(this, 3) != null;\n};\n\n\n\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.ColumnKey = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.vertexvis.protobuf.scenetree.v1alpha1.ColumnKey, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n proto.vertexvis.protobuf.scenetree.v1alpha1.ColumnKey.displayName = 'proto.vertexvis.protobuf.scenetree.v1alpha1.ColumnKey';\n}\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto suitable for use in Soy templates.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n * com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS.\n * @param {boolean=} opt_includeInstance Whether to include the JSPB instance\n * for transitional soy proto support: http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.ColumnKey.prototype.toObject = function(opt_includeInstance) {\n return proto.vertexvis.protobuf.scenetree.v1alpha1.ColumnKey.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Whether to include the JSPB\n * instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.vertexvis.protobuf.scenetree.v1alpha1.ColumnKey} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.ColumnKey.toObject = function(includeInstance, msg) {\n var f, obj = {\n value: jspb.Message.getFieldWithDefault(msg, 1, \"\")\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.vertexvis.protobuf.scenetree.v1alpha1.ColumnKey}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.ColumnKey.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.vertexvis.protobuf.scenetree.v1alpha1.ColumnKey;\n return proto.vertexvis.protobuf.scenetree.v1alpha1.ColumnKey.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.vertexvis.protobuf.scenetree.v1alpha1.ColumnKey} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.vertexvis.protobuf.scenetree.v1alpha1.ColumnKey}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.ColumnKey.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {string} */ (reader.readString());\n msg.setValue(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.ColumnKey.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.vertexvis.protobuf.scenetree.v1alpha1.ColumnKey.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.vertexvis.protobuf.scenetree.v1alpha1.ColumnKey} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.ColumnKey.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getValue();\n if (f.length > 0) {\n writer.writeString(\n 1,\n f\n );\n }\n};\n\n\n/**\n * optional string value = 1;\n * @return {string}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.ColumnKey.prototype.getValue = function() {\n return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, \"\"));\n};\n\n\n/** @param {string} value */\nproto.vertexvis.protobuf.scenetree.v1alpha1.ColumnKey.prototype.setValue = function(value) {\n jspb.Message.setProto3StringField(this, 1, value);\n};\n\n\ngoog.object.extend(exports, proto.vertexvis.protobuf.scenetree.v1alpha1);\n","/**\n * @fileoverview\n * @enhanceable\n * @suppress {messageConventions} JS Compiler reports an error if a variable or\n * field starts with 'MSG_' and isn't a translatable message.\n * @public\n */\n// GENERATED CODE -- DO NOT EDIT!\n\nvar jspb = require('google-protobuf');\nvar goog = jspb;\nvar global = Function('return this')();\n\nvar core_protos_paging_pb = require('../../core/protos/paging_pb.js');\nvar core_protos_uuid_pb = require('../../core/protos/uuid_pb.js');\nvar google_protobuf_wrappers_pb = require('google-protobuf/google/protobuf/wrappers_pb.js');\nvar scenetree_protos_domain_pb = require('../../scenetree/protos/domain_pb.js');\ngoog.exportSymbol('proto.vertexvis.protobuf.scenetree.v1alpha1.CollapseAllRequest', null, global);\ngoog.exportSymbol('proto.vertexvis.protobuf.scenetree.v1alpha1.CollapseAllResponse', null, global);\ngoog.exportSymbol('proto.vertexvis.protobuf.scenetree.v1alpha1.CollapseNodeRequest', null, global);\ngoog.exportSymbol('proto.vertexvis.protobuf.scenetree.v1alpha1.CollapseNodeResponse', null, global);\ngoog.exportSymbol('proto.vertexvis.protobuf.scenetree.v1alpha1.ExpandAllRequest', null, global);\ngoog.exportSymbol('proto.vertexvis.protobuf.scenetree.v1alpha1.ExpandAllResponse', null, global);\ngoog.exportSymbol('proto.vertexvis.protobuf.scenetree.v1alpha1.ExpandNodeRequest', null, global);\ngoog.exportSymbol('proto.vertexvis.protobuf.scenetree.v1alpha1.ExpandNodeResponse', null, global);\ngoog.exportSymbol('proto.vertexvis.protobuf.scenetree.v1alpha1.FilterRequest', null, global);\ngoog.exportSymbol('proto.vertexvis.protobuf.scenetree.v1alpha1.FilterResponse', null, global);\ngoog.exportSymbol('proto.vertexvis.protobuf.scenetree.v1alpha1.GetAvailableColumnsRequest', null, global);\ngoog.exportSymbol('proto.vertexvis.protobuf.scenetree.v1alpha1.GetAvailableColumnsResponse', null, global);\ngoog.exportSymbol('proto.vertexvis.protobuf.scenetree.v1alpha1.GetNodeAncestorsRequest', null, global);\ngoog.exportSymbol('proto.vertexvis.protobuf.scenetree.v1alpha1.GetNodeAncestorsResponse', null, global);\ngoog.exportSymbol('proto.vertexvis.protobuf.scenetree.v1alpha1.GetTreeRequest', null, global);\ngoog.exportSymbol('proto.vertexvis.protobuf.scenetree.v1alpha1.GetTreeResponse', null, global);\ngoog.exportSymbol('proto.vertexvis.protobuf.scenetree.v1alpha1.Handshake', null, global);\ngoog.exportSymbol('proto.vertexvis.protobuf.scenetree.v1alpha1.LocateItemRequest', null, global);\ngoog.exportSymbol('proto.vertexvis.protobuf.scenetree.v1alpha1.LocateItemResponse', null, global);\ngoog.exportSymbol('proto.vertexvis.protobuf.scenetree.v1alpha1.SubscribeRequest', null, global);\ngoog.exportSymbol('proto.vertexvis.protobuf.scenetree.v1alpha1.SubscribeResponse', null, global);\n\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.GetTreeRequest = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, proto.vertexvis.protobuf.scenetree.v1alpha1.GetTreeRequest.repeatedFields_, null);\n};\ngoog.inherits(proto.vertexvis.protobuf.scenetree.v1alpha1.GetTreeRequest, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n proto.vertexvis.protobuf.scenetree.v1alpha1.GetTreeRequest.displayName = 'proto.vertexvis.protobuf.scenetree.v1alpha1.GetTreeRequest';\n}\n/**\n * List of repeated fields within this message type.\n * @private {!Array<number>}\n * @const\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.GetTreeRequest.repeatedFields_ = [3];\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto suitable for use in Soy templates.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n * com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS.\n * @param {boolean=} opt_includeInstance Whether to include the JSPB instance\n * for transitional soy proto support: http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.GetTreeRequest.prototype.toObject = function(opt_includeInstance) {\n return proto.vertexvis.protobuf.scenetree.v1alpha1.GetTreeRequest.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Whether to include the JSPB\n * instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.vertexvis.protobuf.scenetree.v1alpha1.GetTreeRequest} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.GetTreeRequest.toObject = function(includeInstance, msg) {\n var f, obj = {\n viewId: (f = msg.getViewId()) && core_protos_uuid_pb.Uuid.toObject(includeInstance, f),\n pager: (f = msg.getPager()) && core_protos_paging_pb.OffsetPager.toObject(includeInstance, f),\n additionalColumnKeysList: jspb.Message.getRepeatedField(msg, 3)\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.vertexvis.protobuf.scenetree.v1alpha1.GetTreeRequest}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.GetTreeRequest.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.vertexvis.protobuf.scenetree.v1alpha1.GetTreeRequest;\n return proto.vertexvis.protobuf.scenetree.v1alpha1.GetTreeRequest.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.vertexvis.protobuf.scenetree.v1alpha1.GetTreeRequest} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.vertexvis.protobuf.scenetree.v1alpha1.GetTreeRequest}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.GetTreeRequest.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = new core_protos_uuid_pb.Uuid;\n reader.readMessage(value,core_protos_uuid_pb.Uuid.deserializeBinaryFromReader);\n msg.setViewId(value);\n break;\n case 2:\n var value = new core_protos_paging_pb.OffsetPager;\n reader.readMessage(value,core_protos_paging_pb.OffsetPager.deserializeBinaryFromReader);\n msg.setPager(value);\n break;\n case 3:\n var value = /** @type {string} */ (reader.readString());\n msg.addAdditionalColumnKeys(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.GetTreeRequest.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.vertexvis.protobuf.scenetree.v1alpha1.GetTreeRequest.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.vertexvis.protobuf.scenetree.v1alpha1.GetTreeRequest} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.GetTreeRequest.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getViewId();\n if (f != null) {\n writer.writeMessage(\n 1,\n f,\n core_protos_uuid_pb.Uuid.serializeBinaryToWriter\n );\n }\n f = message.getPager();\n if (f != null) {\n writer.writeMessage(\n 2,\n f,\n core_protos_paging_pb.OffsetPager.serializeBinaryToWriter\n );\n }\n f = message.getAdditionalColumnKeysList();\n if (f.length > 0) {\n writer.writeRepeatedString(\n 3,\n f\n );\n }\n};\n\n\n/**\n * optional vertexvis.protobuf.core.Uuid view_id = 1;\n * @return {?proto.vertexvis.protobuf.core.Uuid}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.GetTreeRequest.prototype.getViewId = function() {\n return /** @type{?proto.vertexvis.protobuf.core.Uuid} */ (\n jspb.Message.getWrapperField(this, core_protos_uuid_pb.Uuid, 1));\n};\n\n\n/** @param {?proto.vertexvis.protobuf.core.Uuid|undefined} value */\nproto.vertexvis.protobuf.scenetree.v1alpha1.GetTreeRequest.prototype.setViewId = function(value) {\n jspb.Message.setWrapperField(this, 1, value);\n};\n\n\nproto.vertexvis.protobuf.scenetree.v1alpha1.GetTreeRequest.prototype.clearViewId = function() {\n this.setViewId(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {!boolean}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.GetTreeRequest.prototype.hasViewId = function() {\n return jspb.Message.getField(this, 1) != null;\n};\n\n\n/**\n * optional vertexvis.protobuf.core.OffsetPager pager = 2;\n * @return {?proto.vertexvis.protobuf.core.OffsetPager}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.GetTreeRequest.prototype.getPager = function() {\n return /** @type{?proto.vertexvis.protobuf.core.OffsetPager} */ (\n jspb.Message.getWrapperField(this, core_protos_paging_pb.OffsetPager, 2));\n};\n\n\n/** @param {?proto.vertexvis.protobuf.core.OffsetPager|undefined} value */\nproto.vertexvis.protobuf.scenetree.v1alpha1.GetTreeRequest.prototype.setPager = function(value) {\n jspb.Message.setWrapperField(this, 2, value);\n};\n\n\nproto.vertexvis.protobuf.scenetree.v1alpha1.GetTreeRequest.prototype.clearPager = function() {\n this.setPager(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {!boolean}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.GetTreeRequest.prototype.hasPager = function() {\n return jspb.Message.getField(this, 2) != null;\n};\n\n\n/**\n * repeated string additional_column_keys = 3;\n * @return {!Array<string>}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.GetTreeRequest.prototype.getAdditionalColumnKeysList = function() {\n return /** @type {!Array<string>} */ (jspb.Message.getRepeatedField(this, 3));\n};\n\n\n/** @param {!Array<string>} value */\nproto.vertexvis.protobuf.scenetree.v1alpha1.GetTreeRequest.prototype.setAdditionalColumnKeysList = function(value) {\n jspb.Message.setField(this, 3, value || []);\n};\n\n\n/**\n * @param {!string} value\n * @param {number=} opt_index\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.GetTreeRequest.prototype.addAdditionalColumnKeys = function(value, opt_index) {\n jspb.Message.addToRepeatedField(this, 3, value, opt_index);\n};\n\n\nproto.vertexvis.protobuf.scenetree.v1alpha1.GetTreeRequest.prototype.clearAdditionalColumnKeysList = function() {\n this.setAdditionalColumnKeysList([]);\n};\n\n\n\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.GetTreeResponse = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, proto.vertexvis.protobuf.scenetree.v1alpha1.GetTreeResponse.repeatedFields_, null);\n};\ngoog.inherits(proto.vertexvis.protobuf.scenetree.v1alpha1.GetTreeResponse, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n proto.vertexvis.protobuf.scenetree.v1alpha1.GetTreeResponse.displayName = 'proto.vertexvis.protobuf.scenetree.v1alpha1.GetTreeResponse';\n}\n/**\n * List of repeated fields within this message type.\n * @private {!Array<number>}\n * @const\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.GetTreeResponse.repeatedFields_ = [1];\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto suitable for use in Soy templates.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n * com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS.\n * @param {boolean=} opt_includeInstance Whether to include the JSPB instance\n * for transitional soy proto support: http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.GetTreeResponse.prototype.toObject = function(opt_includeInstance) {\n return proto.vertexvis.protobuf.scenetree.v1alpha1.GetTreeResponse.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Whether to include the JSPB\n * instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.vertexvis.protobuf.scenetree.v1alpha1.GetTreeResponse} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.GetTreeResponse.toObject = function(includeInstance, msg) {\n var f, obj = {\n itemsList: jspb.Message.toObjectList(msg.getItemsList(),\n scenetree_protos_domain_pb.Node.toObject, includeInstance),\n totalVisible: jspb.Message.getFieldWithDefault(msg, 2, 0),\n cursor: (f = msg.getCursor()) && core_protos_paging_pb.OffsetCursor.toObject(includeInstance, f)\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.vertexvis.protobuf.scenetree.v1alpha1.GetTreeResponse}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.GetTreeResponse.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.vertexvis.protobuf.scenetree.v1alpha1.GetTreeResponse;\n return proto.vertexvis.protobuf.scenetree.v1alpha1.GetTreeResponse.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.vertexvis.protobuf.scenetree.v1alpha1.GetTreeResponse} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.vertexvis.protobuf.scenetree.v1alpha1.GetTreeResponse}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.GetTreeResponse.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = new scenetree_protos_domain_pb.Node;\n reader.readMessage(value,scenetree_protos_domain_pb.Node.deserializeBinaryFromReader);\n msg.addItems(value);\n break;\n case 2:\n var value = /** @type {number} */ (reader.readUint32());\n msg.setTotalVisible(value);\n break;\n case 3:\n var value = new core_protos_paging_pb.OffsetCursor;\n reader.readMessage(value,core_protos_paging_pb.OffsetCursor.deserializeBinaryFromReader);\n msg.setCursor(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.GetTreeResponse.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.vertexvis.protobuf.scenetree.v1alpha1.GetTreeResponse.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.vertexvis.protobuf.scenetree.v1alpha1.GetTreeResponse} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.GetTreeResponse.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getItemsList();\n if (f.length > 0) {\n writer.writeRepeatedMessage(\n 1,\n f,\n scenetree_protos_domain_pb.Node.serializeBinaryToWriter\n );\n }\n f = message.getTotalVisible();\n if (f !== 0) {\n writer.writeUint32(\n 2,\n f\n );\n }\n f = message.getCursor();\n if (f != null) {\n writer.writeMessage(\n 3,\n f,\n core_protos_paging_pb.OffsetCursor.serializeBinaryToWriter\n );\n }\n};\n\n\n/**\n * repeated Node items = 1;\n * @return {!Array<!proto.vertexvis.protobuf.scenetree.v1alpha1.Node>}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.GetTreeResponse.prototype.getItemsList = function() {\n return /** @type{!Array<!proto.vertexvis.protobuf.scenetree.v1alpha1.Node>} */ (\n jspb.Message.getRepeatedWrapperField(this, scenetree_protos_domain_pb.Node, 1));\n};\n\n\n/** @param {!Array<!proto.vertexvis.protobuf.scenetree.v1alpha1.Node>} value */\nproto.vertexvis.protobuf.scenetree.v1alpha1.GetTreeResponse.prototype.setItemsList = function(value) {\n jspb.Message.setRepeatedWrapperField(this, 1, value);\n};\n\n\n/**\n * @param {!proto.vertexvis.protobuf.scenetree.v1alpha1.Node=} opt_value\n * @param {number=} opt_index\n * @return {!proto.vertexvis.protobuf.scenetree.v1alpha1.Node}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.GetTreeResponse.prototype.addItems = function(opt_value, opt_index) {\n return jspb.Message.addToRepeatedWrapperField(this, 1, opt_value, proto.vertexvis.protobuf.scenetree.v1alpha1.Node, opt_index);\n};\n\n\nproto.vertexvis.protobuf.scenetree.v1alpha1.GetTreeResponse.prototype.clearItemsList = function() {\n this.setItemsList([]);\n};\n\n\n/**\n * optional uint32 total_visible = 2;\n * @return {number}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.GetTreeResponse.prototype.getTotalVisible = function() {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 2, 0));\n};\n\n\n/** @param {number} value */\nproto.vertexvis.protobuf.scenetree.v1alpha1.GetTreeResponse.prototype.setTotalVisible = function(value) {\n jspb.Message.setProto3IntField(this, 2, value);\n};\n\n\n/**\n * optional vertexvis.protobuf.core.OffsetCursor cursor = 3;\n * @return {?proto.vertexvis.protobuf.core.OffsetCursor}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.GetTreeResponse.prototype.getCursor = function() {\n return /** @type{?proto.vertexvis.protobuf.core.OffsetCursor} */ (\n jspb.Message.getWrapperField(this, core_protos_paging_pb.OffsetCursor, 3));\n};\n\n\n/** @param {?proto.vertexvis.protobuf.core.OffsetCursor|undefined} value */\nproto.vertexvis.protobuf.scenetree.v1alpha1.GetTreeResponse.prototype.setCursor = function(value) {\n jspb.Message.setWrapperField(this, 3, value);\n};\n\n\nproto.vertexvis.protobuf.scenetree.v1alpha1.GetTreeResponse.prototype.clearCursor = function() {\n this.setCursor(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {!boolean}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.GetTreeResponse.prototype.hasCursor = function() {\n return jspb.Message.getField(this, 3) != null;\n};\n\n\n\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.ExpandNodeRequest = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.vertexvis.protobuf.scenetree.v1alpha1.ExpandNodeRequest, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n proto.vertexvis.protobuf.scenetree.v1alpha1.ExpandNodeRequest.displayName = 'proto.vertexvis.protobuf.scenetree.v1alpha1.ExpandNodeRequest';\n}\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto suitable for use in Soy templates.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n * com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS.\n * @param {boolean=} opt_includeInstance Whether to include the JSPB instance\n * for transitional soy proto support: http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.ExpandNodeRequest.prototype.toObject = function(opt_includeInstance) {\n return proto.vertexvis.protobuf.scenetree.v1alpha1.ExpandNodeRequest.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Whether to include the JSPB\n * instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.vertexvis.protobuf.scenetree.v1alpha1.ExpandNodeRequest} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.ExpandNodeRequest.toObject = function(includeInstance, msg) {\n var f, obj = {\n viewId: (f = msg.getViewId()) && core_protos_uuid_pb.Uuid.toObject(includeInstance, f),\n nodeId: (f = msg.getNodeId()) && core_protos_uuid_pb.Uuid.toObject(includeInstance, f)\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.vertexvis.protobuf.scenetree.v1alpha1.ExpandNodeRequest}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.ExpandNodeRequest.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.vertexvis.protobuf.scenetree.v1alpha1.ExpandNodeRequest;\n return proto.vertexvis.protobuf.scenetree.v1alpha1.ExpandNodeRequest.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.vertexvis.protobuf.scenetree.v1alpha1.ExpandNodeRequest} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.vertexvis.protobuf.scenetree.v1alpha1.ExpandNodeRequest}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.ExpandNodeRequest.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = new core_protos_uuid_pb.Uuid;\n reader.readMessage(value,core_protos_uuid_pb.Uuid.deserializeBinaryFromReader);\n msg.setViewId(value);\n break;\n case 2:\n var value = new core_protos_uuid_pb.Uuid;\n reader.readMessage(value,core_protos_uuid_pb.Uuid.deserializeBinaryFromReader);\n msg.setNodeId(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.ExpandNodeRequest.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.vertexvis.protobuf.scenetree.v1alpha1.ExpandNodeRequest.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.vertexvis.protobuf.scenetree.v1alpha1.ExpandNodeRequest} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.ExpandNodeRequest.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getViewId();\n if (f != null) {\n writer.writeMessage(\n 1,\n f,\n core_protos_uuid_pb.Uuid.serializeBinaryToWriter\n );\n }\n f = message.getNodeId();\n if (f != null) {\n writer.writeMessage(\n 2,\n f,\n core_protos_uuid_pb.Uuid.serializeBinaryToWriter\n );\n }\n};\n\n\n/**\n * optional vertexvis.protobuf.core.Uuid view_id = 1;\n * @return {?proto.vertexvis.protobuf.core.Uuid}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.ExpandNodeRequest.prototype.getViewId = function() {\n return /** @type{?proto.vertexvis.protobuf.core.Uuid} */ (\n jspb.Message.getWrapperField(this, core_protos_uuid_pb.Uuid, 1));\n};\n\n\n/** @param {?proto.vertexvis.protobuf.core.Uuid|undefined} value */\nproto.vertexvis.protobuf.scenetree.v1alpha1.ExpandNodeRequest.prototype.setViewId = function(value) {\n jspb.Message.setWrapperField(this, 1, value);\n};\n\n\nproto.vertexvis.protobuf.scenetree.v1alpha1.ExpandNodeRequest.prototype.clearViewId = function() {\n this.setViewId(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {!boolean}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.ExpandNodeRequest.prototype.hasViewId = function() {\n return jspb.Message.getField(this, 1) != null;\n};\n\n\n/**\n * optional vertexvis.protobuf.core.Uuid node_id = 2;\n * @return {?proto.vertexvis.protobuf.core.Uuid}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.ExpandNodeRequest.prototype.getNodeId = function() {\n return /** @type{?proto.vertexvis.protobuf.core.Uuid} */ (\n jspb.Message.getWrapperField(this, core_protos_uuid_pb.Uuid, 2));\n};\n\n\n/** @param {?proto.vertexvis.protobuf.core.Uuid|undefined} value */\nproto.vertexvis.protobuf.scenetree.v1alpha1.ExpandNodeRequest.prototype.setNodeId = function(value) {\n jspb.Message.setWrapperField(this, 2, value);\n};\n\n\nproto.vertexvis.protobuf.scenetree.v1alpha1.ExpandNodeRequest.prototype.clearNodeId = function() {\n this.setNodeId(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {!boolean}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.ExpandNodeRequest.prototype.hasNodeId = function() {\n return jspb.Message.getField(this, 2) != null;\n};\n\n\n\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.ExpandNodeResponse = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.vertexvis.protobuf.scenetree.v1alpha1.ExpandNodeResponse, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n proto.vertexvis.protobuf.scenetree.v1alpha1.ExpandNodeResponse.displayName = 'proto.vertexvis.protobuf.scenetree.v1alpha1.ExpandNodeResponse';\n}\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto suitable for use in Soy templates.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n * com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS.\n * @param {boolean=} opt_includeInstance Whether to include the JSPB instance\n * for transitional soy proto support: http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.ExpandNodeResponse.prototype.toObject = function(opt_includeInstance) {\n return proto.vertexvis.protobuf.scenetree.v1alpha1.ExpandNodeResponse.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Whether to include the JSPB\n * instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.vertexvis.protobuf.scenetree.v1alpha1.ExpandNodeResponse} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.ExpandNodeResponse.toObject = function(includeInstance, msg) {\n var f, obj = {\n\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.vertexvis.protobuf.scenetree.v1alpha1.ExpandNodeResponse}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.ExpandNodeResponse.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.vertexvis.protobuf.scenetree.v1alpha1.ExpandNodeResponse;\n return proto.vertexvis.protobuf.scenetree.v1alpha1.ExpandNodeResponse.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.vertexvis.protobuf.scenetree.v1alpha1.ExpandNodeResponse} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.vertexvis.protobuf.scenetree.v1alpha1.ExpandNodeResponse}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.ExpandNodeResponse.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.ExpandNodeResponse.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.vertexvis.protobuf.scenetree.v1alpha1.ExpandNodeResponse.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.vertexvis.protobuf.scenetree.v1alpha1.ExpandNodeResponse} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.ExpandNodeResponse.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n};\n\n\n\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.CollapseNodeRequest = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.vertexvis.protobuf.scenetree.v1alpha1.CollapseNodeRequest, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n proto.vertexvis.protobuf.scenetree.v1alpha1.CollapseNodeRequest.displayName = 'proto.vertexvis.protobuf.scenetree.v1alpha1.CollapseNodeRequest';\n}\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto suitable for use in Soy templates.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n * com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS.\n * @param {boolean=} opt_includeInstance Whether to include the JSPB instance\n * for transitional soy proto support: http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.CollapseNodeRequest.prototype.toObject = function(opt_includeInstance) {\n return proto.vertexvis.protobuf.scenetree.v1alpha1.CollapseNodeRequest.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Whether to include the JSPB\n * instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.vertexvis.protobuf.scenetree.v1alpha1.CollapseNodeRequest} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.CollapseNodeRequest.toObject = function(includeInstance, msg) {\n var f, obj = {\n viewId: (f = msg.getViewId()) && core_protos_uuid_pb.Uuid.toObject(includeInstance, f),\n nodeId: (f = msg.getNodeId()) && core_protos_uuid_pb.Uuid.toObject(includeInstance, f)\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.vertexvis.protobuf.scenetree.v1alpha1.CollapseNodeRequest}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.CollapseNodeRequest.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.vertexvis.protobuf.scenetree.v1alpha1.CollapseNodeRequest;\n return proto.vertexvis.protobuf.scenetree.v1alpha1.CollapseNodeRequest.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.vertexvis.protobuf.scenetree.v1alpha1.CollapseNodeRequest} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.vertexvis.protobuf.scenetree.v1alpha1.CollapseNodeRequest}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.CollapseNodeRequest.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = new core_protos_uuid_pb.Uuid;\n reader.readMessage(value,core_protos_uuid_pb.Uuid.deserializeBinaryFromReader);\n msg.setViewId(value);\n break;\n case 2:\n var value = new core_protos_uuid_pb.Uuid;\n reader.readMessage(value,core_protos_uuid_pb.Uuid.deserializeBinaryFromReader);\n msg.setNodeId(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.CollapseNodeRequest.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.vertexvis.protobuf.scenetree.v1alpha1.CollapseNodeRequest.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.vertexvis.protobuf.scenetree.v1alpha1.CollapseNodeRequest} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.CollapseNodeRequest.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getViewId();\n if (f != null) {\n writer.writeMessage(\n 1,\n f,\n core_protos_uuid_pb.Uuid.serializeBinaryToWriter\n );\n }\n f = message.getNodeId();\n if (f != null) {\n writer.writeMessage(\n 2,\n f,\n core_protos_uuid_pb.Uuid.serializeBinaryToWriter\n );\n }\n};\n\n\n/**\n * optional vertexvis.protobuf.core.Uuid view_id = 1;\n * @return {?proto.vertexvis.protobuf.core.Uuid}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.CollapseNodeRequest.prototype.getViewId = function() {\n return /** @type{?proto.vertexvis.protobuf.core.Uuid} */ (\n jspb.Message.getWrapperField(this, core_protos_uuid_pb.Uuid, 1));\n};\n\n\n/** @param {?proto.vertexvis.protobuf.core.Uuid|undefined} value */\nproto.vertexvis.protobuf.scenetree.v1alpha1.CollapseNodeRequest.prototype.setViewId = function(value) {\n jspb.Message.setWrapperField(this, 1, value);\n};\n\n\nproto.vertexvis.protobuf.scenetree.v1alpha1.CollapseNodeRequest.prototype.clearViewId = function() {\n this.setViewId(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {!boolean}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.CollapseNodeRequest.prototype.hasViewId = function() {\n return jspb.Message.getField(this, 1) != null;\n};\n\n\n/**\n * optional vertexvis.protobuf.core.Uuid node_id = 2;\n * @return {?proto.vertexvis.protobuf.core.Uuid}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.CollapseNodeRequest.prototype.getNodeId = function() {\n return /** @type{?proto.vertexvis.protobuf.core.Uuid} */ (\n jspb.Message.getWrapperField(this, core_protos_uuid_pb.Uuid, 2));\n};\n\n\n/** @param {?proto.vertexvis.protobuf.core.Uuid|undefined} value */\nproto.vertexvis.protobuf.scenetree.v1alpha1.CollapseNodeRequest.prototype.setNodeId = function(value) {\n jspb.Message.setWrapperField(this, 2, value);\n};\n\n\nproto.vertexvis.protobuf.scenetree.v1alpha1.CollapseNodeRequest.prototype.clearNodeId = function() {\n this.setNodeId(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {!boolean}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.CollapseNodeRequest.prototype.hasNodeId = function() {\n return jspb.Message.getField(this, 2) != null;\n};\n\n\n\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.CollapseNodeResponse = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.vertexvis.protobuf.scenetree.v1alpha1.CollapseNodeResponse, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n proto.vertexvis.protobuf.scenetree.v1alpha1.CollapseNodeResponse.displayName = 'proto.vertexvis.protobuf.scenetree.v1alpha1.CollapseNodeResponse';\n}\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto suitable for use in Soy templates.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n * com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS.\n * @param {boolean=} opt_includeInstance Whether to include the JSPB instance\n * for transitional soy proto support: http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.CollapseNodeResponse.prototype.toObject = function(opt_includeInstance) {\n return proto.vertexvis.protobuf.scenetree.v1alpha1.CollapseNodeResponse.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Whether to include the JSPB\n * instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.vertexvis.protobuf.scenetree.v1alpha1.CollapseNodeResponse} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.CollapseNodeResponse.toObject = function(includeInstance, msg) {\n var f, obj = {\n\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.vertexvis.protobuf.scenetree.v1alpha1.CollapseNodeResponse}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.CollapseNodeResponse.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.vertexvis.protobuf.scenetree.v1alpha1.CollapseNodeResponse;\n return proto.vertexvis.protobuf.scenetree.v1alpha1.CollapseNodeResponse.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.vertexvis.protobuf.scenetree.v1alpha1.CollapseNodeResponse} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.vertexvis.protobuf.scenetree.v1alpha1.CollapseNodeResponse}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.CollapseNodeResponse.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.CollapseNodeResponse.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.vertexvis.protobuf.scenetree.v1alpha1.CollapseNodeResponse.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.vertexvis.protobuf.scenetree.v1alpha1.CollapseNodeResponse} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.CollapseNodeResponse.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n};\n\n\n\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.SubscribeRequest = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.vertexvis.protobuf.scenetree.v1alpha1.SubscribeRequest, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n proto.vertexvis.protobuf.scenetree.v1alpha1.SubscribeRequest.displayName = 'proto.vertexvis.protobuf.scenetree.v1alpha1.SubscribeRequest';\n}\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto suitable for use in Soy templates.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n * com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS.\n * @param {boolean=} opt_includeInstance Whether to include the JSPB instance\n * for transitional soy proto support: http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.SubscribeRequest.prototype.toObject = function(opt_includeInstance) {\n return proto.vertexvis.protobuf.scenetree.v1alpha1.SubscribeRequest.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Whether to include the JSPB\n * instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.vertexvis.protobuf.scenetree.v1alpha1.SubscribeRequest} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.SubscribeRequest.toObject = function(includeInstance, msg) {\n var f, obj = {\n viewId: (f = msg.getViewId()) && core_protos_uuid_pb.Uuid.toObject(includeInstance, f)\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.vertexvis.protobuf.scenetree.v1alpha1.SubscribeRequest}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.SubscribeRequest.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.vertexvis.protobuf.scenetree.v1alpha1.SubscribeRequest;\n return proto.vertexvis.protobuf.scenetree.v1alpha1.SubscribeRequest.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.vertexvis.protobuf.scenetree.v1alpha1.SubscribeRequest} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.vertexvis.protobuf.scenetree.v1alpha1.SubscribeRequest}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.SubscribeRequest.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = new core_protos_uuid_pb.Uuid;\n reader.readMessage(value,core_protos_uuid_pb.Uuid.deserializeBinaryFromReader);\n msg.setViewId(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.SubscribeRequest.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.vertexvis.protobuf.scenetree.v1alpha1.SubscribeRequest.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.vertexvis.protobuf.scenetree.v1alpha1.SubscribeRequest} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.SubscribeRequest.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getViewId();\n if (f != null) {\n writer.writeMessage(\n 1,\n f,\n core_protos_uuid_pb.Uuid.serializeBinaryToWriter\n );\n }\n};\n\n\n/**\n * optional vertexvis.protobuf.core.Uuid view_id = 1;\n * @return {?proto.vertexvis.protobuf.core.Uuid}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.SubscribeRequest.prototype.getViewId = function() {\n return /** @type{?proto.vertexvis.protobuf.core.Uuid} */ (\n jspb.Message.getWrapperField(this, core_protos_uuid_pb.Uuid, 1));\n};\n\n\n/** @param {?proto.vertexvis.protobuf.core.Uuid|undefined} value */\nproto.vertexvis.protobuf.scenetree.v1alpha1.SubscribeRequest.prototype.setViewId = function(value) {\n jspb.Message.setWrapperField(this, 1, value);\n};\n\n\nproto.vertexvis.protobuf.scenetree.v1alpha1.SubscribeRequest.prototype.clearViewId = function() {\n this.setViewId(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {!boolean}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.SubscribeRequest.prototype.hasViewId = function() {\n return jspb.Message.getField(this, 1) != null;\n};\n\n\n\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.SubscribeResponse = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.vertexvis.protobuf.scenetree.v1alpha1.SubscribeResponse, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n proto.vertexvis.protobuf.scenetree.v1alpha1.SubscribeResponse.displayName = 'proto.vertexvis.protobuf.scenetree.v1alpha1.SubscribeResponse';\n}\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto suitable for use in Soy templates.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n * com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS.\n * @param {boolean=} opt_includeInstance Whether to include the JSPB instance\n * for transitional soy proto support: http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.SubscribeResponse.prototype.toObject = function(opt_includeInstance) {\n return proto.vertexvis.protobuf.scenetree.v1alpha1.SubscribeResponse.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Whether to include the JSPB\n * instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.vertexvis.protobuf.scenetree.v1alpha1.SubscribeResponse} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.SubscribeResponse.toObject = function(includeInstance, msg) {\n var f, obj = {\n change: (f = msg.getChange()) && scenetree_protos_domain_pb.TreeChangeType.toObject(includeInstance, f),\n handshake: (f = msg.getHandshake()) && proto.vertexvis.protobuf.scenetree.v1alpha1.Handshake.toObject(includeInstance, f)\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.vertexvis.protobuf.scenetree.v1alpha1.SubscribeResponse}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.SubscribeResponse.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.vertexvis.protobuf.scenetree.v1alpha1.SubscribeResponse;\n return proto.vertexvis.protobuf.scenetree.v1alpha1.SubscribeResponse.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.vertexvis.protobuf.scenetree.v1alpha1.SubscribeResponse} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.vertexvis.protobuf.scenetree.v1alpha1.SubscribeResponse}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.SubscribeResponse.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = new scenetree_protos_domain_pb.TreeChangeType;\n reader.readMessage(value,scenetree_protos_domain_pb.TreeChangeType.deserializeBinaryFromReader);\n msg.setChange(value);\n break;\n case 2:\n var value = new proto.vertexvis.protobuf.scenetree.v1alpha1.Handshake;\n reader.readMessage(value,proto.vertexvis.protobuf.scenetree.v1alpha1.Handshake.deserializeBinaryFromReader);\n msg.setHandshake(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.SubscribeResponse.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.vertexvis.protobuf.scenetree.v1alpha1.SubscribeResponse.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.vertexvis.protobuf.scenetree.v1alpha1.SubscribeResponse} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.SubscribeResponse.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getChange();\n if (f != null) {\n writer.writeMessage(\n 1,\n f,\n scenetree_protos_domain_pb.TreeChangeType.serializeBinaryToWriter\n );\n }\n f = message.getHandshake();\n if (f != null) {\n writer.writeMessage(\n 2,\n f,\n proto.vertexvis.protobuf.scenetree.v1alpha1.Handshake.serializeBinaryToWriter\n );\n }\n};\n\n\n/**\n * optional TreeChangeType change = 1;\n * @return {?proto.vertexvis.protobuf.scenetree.v1alpha1.TreeChangeType}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.SubscribeResponse.prototype.getChange = function() {\n return /** @type{?proto.vertexvis.protobuf.scenetree.v1alpha1.TreeChangeType} */ (\n jspb.Message.getWrapperField(this, scenetree_protos_domain_pb.TreeChangeType, 1));\n};\n\n\n/** @param {?proto.vertexvis.protobuf.scenetree.v1alpha1.TreeChangeType|undefined} value */\nproto.vertexvis.protobuf.scenetree.v1alpha1.SubscribeResponse.prototype.setChange = function(value) {\n jspb.Message.setWrapperField(this, 1, value);\n};\n\n\nproto.vertexvis.protobuf.scenetree.v1alpha1.SubscribeResponse.prototype.clearChange = function() {\n this.setChange(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {!boolean}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.SubscribeResponse.prototype.hasChange = function() {\n return jspb.Message.getField(this, 1) != null;\n};\n\n\n/**\n * optional Handshake handshake = 2;\n * @return {?proto.vertexvis.protobuf.scenetree.v1alpha1.Handshake}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.SubscribeResponse.prototype.getHandshake = function() {\n return /** @type{?proto.vertexvis.protobuf.scenetree.v1alpha1.Handshake} */ (\n jspb.Message.getWrapperField(this, proto.vertexvis.protobuf.scenetree.v1alpha1.Handshake, 2));\n};\n\n\n/** @param {?proto.vertexvis.protobuf.scenetree.v1alpha1.Handshake|undefined} value */\nproto.vertexvis.protobuf.scenetree.v1alpha1.SubscribeResponse.prototype.setHandshake = function(value) {\n jspb.Message.setWrapperField(this, 2, value);\n};\n\n\nproto.vertexvis.protobuf.scenetree.v1alpha1.SubscribeResponse.prototype.clearHandshake = function() {\n this.setHandshake(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {!boolean}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.SubscribeResponse.prototype.hasHandshake = function() {\n return jspb.Message.getField(this, 2) != null;\n};\n\n\n\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.Handshake = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.vertexvis.protobuf.scenetree.v1alpha1.Handshake, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n proto.vertexvis.protobuf.scenetree.v1alpha1.Handshake.displayName = 'proto.vertexvis.protobuf.scenetree.v1alpha1.Handshake';\n}\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto suitable for use in Soy templates.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n * com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS.\n * @param {boolean=} opt_includeInstance Whether to include the JSPB instance\n * for transitional soy proto support: http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.Handshake.prototype.toObject = function(opt_includeInstance) {\n return proto.vertexvis.protobuf.scenetree.v1alpha1.Handshake.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Whether to include the JSPB\n * instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.vertexvis.protobuf.scenetree.v1alpha1.Handshake} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.Handshake.toObject = function(includeInstance, msg) {\n var f, obj = {\n\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.vertexvis.protobuf.scenetree.v1alpha1.Handshake}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.Handshake.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.vertexvis.protobuf.scenetree.v1alpha1.Handshake;\n return proto.vertexvis.protobuf.scenetree.v1alpha1.Handshake.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.vertexvis.protobuf.scenetree.v1alpha1.Handshake} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.vertexvis.protobuf.scenetree.v1alpha1.Handshake}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.Handshake.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.Handshake.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.vertexvis.protobuf.scenetree.v1alpha1.Handshake.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.vertexvis.protobuf.scenetree.v1alpha1.Handshake} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.Handshake.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n};\n\n\n\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.FilterRequest = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, proto.vertexvis.protobuf.scenetree.v1alpha1.FilterRequest.repeatedFields_, null);\n};\ngoog.inherits(proto.vertexvis.protobuf.scenetree.v1alpha1.FilterRequest, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n proto.vertexvis.protobuf.scenetree.v1alpha1.FilterRequest.displayName = 'proto.vertexvis.protobuf.scenetree.v1alpha1.FilterRequest';\n}\n/**\n * List of repeated fields within this message type.\n * @private {!Array<number>}\n * @const\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.FilterRequest.repeatedFields_ = [3];\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto suitable for use in Soy templates.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n * com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS.\n * @param {boolean=} opt_includeInstance Whether to include the JSPB instance\n * for transitional soy proto support: http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.FilterRequest.prototype.toObject = function(opt_includeInstance) {\n return proto.vertexvis.protobuf.scenetree.v1alpha1.FilterRequest.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Whether to include the JSPB\n * instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.vertexvis.protobuf.scenetree.v1alpha1.FilterRequest} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.FilterRequest.toObject = function(includeInstance, msg) {\n var f, obj = {\n filter: jspb.Message.getFieldWithDefault(msg, 1, \"\"),\n fullTree: jspb.Message.getFieldWithDefault(msg, 2, false),\n columnsKeysList: jspb.Message.getRepeatedField(msg, 3),\n exactMatch: jspb.Message.getFieldWithDefault(msg, 4, false),\n removeHiddenItems: jspb.Message.getFieldWithDefault(msg, 5, false)\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.vertexvis.protobuf.scenetree.v1alpha1.FilterRequest}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.FilterRequest.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.vertexvis.protobuf.scenetree.v1alpha1.FilterRequest;\n return proto.vertexvis.protobuf.scenetree.v1alpha1.FilterRequest.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.vertexvis.protobuf.scenetree.v1alpha1.FilterRequest} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.vertexvis.protobuf.scenetree.v1alpha1.FilterRequest}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.FilterRequest.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {string} */ (reader.readString());\n msg.setFilter(value);\n break;\n case 2:\n var value = /** @type {boolean} */ (reader.readBool());\n msg.setFullTree(value);\n break;\n case 3:\n var value = /** @type {string} */ (reader.readString());\n msg.addColumnsKeys(value);\n break;\n case 4:\n var value = /** @type {boolean} */ (reader.readBool());\n msg.setExactMatch(value);\n break;\n case 5:\n var value = /** @type {boolean} */ (reader.readBool());\n msg.setRemoveHiddenItems(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.FilterRequest.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.vertexvis.protobuf.scenetree.v1alpha1.FilterRequest.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.vertexvis.protobuf.scenetree.v1alpha1.FilterRequest} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.FilterRequest.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getFilter();\n if (f.length > 0) {\n writer.writeString(\n 1,\n f\n );\n }\n f = message.getFullTree();\n if (f) {\n writer.writeBool(\n 2,\n f\n );\n }\n f = message.getColumnsKeysList();\n if (f.length > 0) {\n writer.writeRepeatedString(\n 3,\n f\n );\n }\n f = message.getExactMatch();\n if (f) {\n writer.writeBool(\n 4,\n f\n );\n }\n f = message.getRemoveHiddenItems();\n if (f) {\n writer.writeBool(\n 5,\n f\n );\n }\n};\n\n\n/**\n * optional string filter = 1;\n * @return {string}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.FilterRequest.prototype.getFilter = function() {\n return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, \"\"));\n};\n\n\n/** @param {string} value */\nproto.vertexvis.protobuf.scenetree.v1alpha1.FilterRequest.prototype.setFilter = function(value) {\n jspb.Message.setProto3StringField(this, 1, value);\n};\n\n\n/**\n * optional bool full_tree = 2;\n * Note that Boolean fields may be set to 0/1 when serialized from a Java server.\n * You should avoid comparisons like {@code val === true/false} in those cases.\n * @return {boolean}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.FilterRequest.prototype.getFullTree = function() {\n return /** @type {boolean} */ (jspb.Message.getFieldWithDefault(this, 2, false));\n};\n\n\n/** @param {boolean} value */\nproto.vertexvis.protobuf.scenetree.v1alpha1.FilterRequest.prototype.setFullTree = function(value) {\n jspb.Message.setProto3BooleanField(this, 2, value);\n};\n\n\n/**\n * repeated string columns_keys = 3;\n * @return {!Array<string>}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.FilterRequest.prototype.getColumnsKeysList = function() {\n return /** @type {!Array<string>} */ (jspb.Message.getRepeatedField(this, 3));\n};\n\n\n/** @param {!Array<string>} value */\nproto.vertexvis.protobuf.scenetree.v1alpha1.FilterRequest.prototype.setColumnsKeysList = function(value) {\n jspb.Message.setField(this, 3, value || []);\n};\n\n\n/**\n * @param {!string} value\n * @param {number=} opt_index\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.FilterRequest.prototype.addColumnsKeys = function(value, opt_index) {\n jspb.Message.addToRepeatedField(this, 3, value, opt_index);\n};\n\n\nproto.vertexvis.protobuf.scenetree.v1alpha1.FilterRequest.prototype.clearColumnsKeysList = function() {\n this.setColumnsKeysList([]);\n};\n\n\n/**\n * optional bool exact_match = 4;\n * Note that Boolean fields may be set to 0/1 when serialized from a Java server.\n * You should avoid comparisons like {@code val === true/false} in those cases.\n * @return {boolean}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.FilterRequest.prototype.getExactMatch = function() {\n return /** @type {boolean} */ (jspb.Message.getFieldWithDefault(this, 4, false));\n};\n\n\n/** @param {boolean} value */\nproto.vertexvis.protobuf.scenetree.v1alpha1.FilterRequest.prototype.setExactMatch = function(value) {\n jspb.Message.setProto3BooleanField(this, 4, value);\n};\n\n\n/**\n * optional bool remove_hidden_items = 5;\n * Note that Boolean fields may be set to 0/1 when serialized from a Java server.\n * You should avoid comparisons like {@code val === true/false} in those cases.\n * @return {boolean}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.FilterRequest.prototype.getRemoveHiddenItems = function() {\n return /** @type {boolean} */ (jspb.Message.getFieldWithDefault(this, 5, false));\n};\n\n\n/** @param {boolean} value */\nproto.vertexvis.protobuf.scenetree.v1alpha1.FilterRequest.prototype.setRemoveHiddenItems = function(value) {\n jspb.Message.setProto3BooleanField(this, 5, value);\n};\n\n\n\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.FilterResponse = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.vertexvis.protobuf.scenetree.v1alpha1.FilterResponse, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n proto.vertexvis.protobuf.scenetree.v1alpha1.FilterResponse.displayName = 'proto.vertexvis.protobuf.scenetree.v1alpha1.FilterResponse';\n}\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto suitable for use in Soy templates.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n * com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS.\n * @param {boolean=} opt_includeInstance Whether to include the JSPB instance\n * for transitional soy proto support: http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.FilterResponse.prototype.toObject = function(opt_includeInstance) {\n return proto.vertexvis.protobuf.scenetree.v1alpha1.FilterResponse.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Whether to include the JSPB\n * instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.vertexvis.protobuf.scenetree.v1alpha1.FilterResponse} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.FilterResponse.toObject = function(includeInstance, msg) {\n var f, obj = {\n numberOfResults: jspb.Message.getFieldWithDefault(msg, 1, 0)\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.vertexvis.protobuf.scenetree.v1alpha1.FilterResponse}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.FilterResponse.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.vertexvis.protobuf.scenetree.v1alpha1.FilterResponse;\n return proto.vertexvis.protobuf.scenetree.v1alpha1.FilterResponse.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.vertexvis.protobuf.scenetree.v1alpha1.FilterResponse} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.vertexvis.protobuf.scenetree.v1alpha1.FilterResponse}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.FilterResponse.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {number} */ (reader.readUint32());\n msg.setNumberOfResults(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.FilterResponse.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.vertexvis.protobuf.scenetree.v1alpha1.FilterResponse.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.vertexvis.protobuf.scenetree.v1alpha1.FilterResponse} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.FilterResponse.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getNumberOfResults();\n if (f !== 0) {\n writer.writeUint32(\n 1,\n f\n );\n }\n};\n\n\n/**\n * optional uint32 number_of_results = 1;\n * @return {number}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.FilterResponse.prototype.getNumberOfResults = function() {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 1, 0));\n};\n\n\n/** @param {number} value */\nproto.vertexvis.protobuf.scenetree.v1alpha1.FilterResponse.prototype.setNumberOfResults = function(value) {\n jspb.Message.setProto3IntField(this, 1, value);\n};\n\n\n\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.LocateItemRequest = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.vertexvis.protobuf.scenetree.v1alpha1.LocateItemRequest, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n proto.vertexvis.protobuf.scenetree.v1alpha1.LocateItemRequest.displayName = 'proto.vertexvis.protobuf.scenetree.v1alpha1.LocateItemRequest';\n}\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto suitable for use in Soy templates.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n * com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS.\n * @param {boolean=} opt_includeInstance Whether to include the JSPB instance\n * for transitional soy proto support: http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.LocateItemRequest.prototype.toObject = function(opt_includeInstance) {\n return proto.vertexvis.protobuf.scenetree.v1alpha1.LocateItemRequest.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Whether to include the JSPB\n * instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.vertexvis.protobuf.scenetree.v1alpha1.LocateItemRequest} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.LocateItemRequest.toObject = function(includeInstance, msg) {\n var f, obj = {\n nodeId: (f = msg.getNodeId()) && core_protos_uuid_pb.Uuid.toObject(includeInstance, f)\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.vertexvis.protobuf.scenetree.v1alpha1.LocateItemRequest}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.LocateItemRequest.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.vertexvis.protobuf.scenetree.v1alpha1.LocateItemRequest;\n return proto.vertexvis.protobuf.scenetree.v1alpha1.LocateItemRequest.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.vertexvis.protobuf.scenetree.v1alpha1.LocateItemRequest} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.vertexvis.protobuf.scenetree.v1alpha1.LocateItemRequest}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.LocateItemRequest.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 2:\n var value = new core_protos_uuid_pb.Uuid;\n reader.readMessage(value,core_protos_uuid_pb.Uuid.deserializeBinaryFromReader);\n msg.setNodeId(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.LocateItemRequest.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.vertexvis.protobuf.scenetree.v1alpha1.LocateItemRequest.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.vertexvis.protobuf.scenetree.v1alpha1.LocateItemRequest} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.LocateItemRequest.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getNodeId();\n if (f != null) {\n writer.writeMessage(\n 2,\n f,\n core_protos_uuid_pb.Uuid.serializeBinaryToWriter\n );\n }\n};\n\n\n/**\n * optional vertexvis.protobuf.core.Uuid node_id = 2;\n * @return {?proto.vertexvis.protobuf.core.Uuid}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.LocateItemRequest.prototype.getNodeId = function() {\n return /** @type{?proto.vertexvis.protobuf.core.Uuid} */ (\n jspb.Message.getWrapperField(this, core_protos_uuid_pb.Uuid, 2));\n};\n\n\n/** @param {?proto.vertexvis.protobuf.core.Uuid|undefined} value */\nproto.vertexvis.protobuf.scenetree.v1alpha1.LocateItemRequest.prototype.setNodeId = function(value) {\n jspb.Message.setWrapperField(this, 2, value);\n};\n\n\nproto.vertexvis.protobuf.scenetree.v1alpha1.LocateItemRequest.prototype.clearNodeId = function() {\n this.setNodeId(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {!boolean}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.LocateItemRequest.prototype.hasNodeId = function() {\n return jspb.Message.getField(this, 2) != null;\n};\n\n\n\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.LocateItemResponse = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.vertexvis.protobuf.scenetree.v1alpha1.LocateItemResponse, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n proto.vertexvis.protobuf.scenetree.v1alpha1.LocateItemResponse.displayName = 'proto.vertexvis.protobuf.scenetree.v1alpha1.LocateItemResponse';\n}\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto suitable for use in Soy templates.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n * com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS.\n * @param {boolean=} opt_includeInstance Whether to include the JSPB instance\n * for transitional soy proto support: http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.LocateItemResponse.prototype.toObject = function(opt_includeInstance) {\n return proto.vertexvis.protobuf.scenetree.v1alpha1.LocateItemResponse.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Whether to include the JSPB\n * instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.vertexvis.protobuf.scenetree.v1alpha1.LocateItemResponse} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.LocateItemResponse.toObject = function(includeInstance, msg) {\n var f, obj = {\n locatedIndex: (f = msg.getLocatedIndex()) && google_protobuf_wrappers_pb.UInt64Value.toObject(includeInstance, f),\n requiresReload: jspb.Message.getFieldWithDefault(msg, 2, false)\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.vertexvis.protobuf.scenetree.v1alpha1.LocateItemResponse}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.LocateItemResponse.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.vertexvis.protobuf.scenetree.v1alpha1.LocateItemResponse;\n return proto.vertexvis.protobuf.scenetree.v1alpha1.LocateItemResponse.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.vertexvis.protobuf.scenetree.v1alpha1.LocateItemResponse} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.vertexvis.protobuf.scenetree.v1alpha1.LocateItemResponse}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.LocateItemResponse.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = new google_protobuf_wrappers_pb.UInt64Value;\n reader.readMessage(value,google_protobuf_wrappers_pb.UInt64Value.deserializeBinaryFromReader);\n msg.setLocatedIndex(value);\n break;\n case 2:\n var value = /** @type {boolean} */ (reader.readBool());\n msg.setRequiresReload(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.LocateItemResponse.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.vertexvis.protobuf.scenetree.v1alpha1.LocateItemResponse.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.vertexvis.protobuf.scenetree.v1alpha1.LocateItemResponse} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.LocateItemResponse.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getLocatedIndex();\n if (f != null) {\n writer.writeMessage(\n 1,\n f,\n google_protobuf_wrappers_pb.UInt64Value.serializeBinaryToWriter\n );\n }\n f = message.getRequiresReload();\n if (f) {\n writer.writeBool(\n 2,\n f\n );\n }\n};\n\n\n/**\n * optional google.protobuf.UInt64Value located_index = 1;\n * @return {?proto.google.protobuf.UInt64Value}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.LocateItemResponse.prototype.getLocatedIndex = function() {\n return /** @type{?proto.google.protobuf.UInt64Value} */ (\n jspb.Message.getWrapperField(this, google_protobuf_wrappers_pb.UInt64Value, 1));\n};\n\n\n/** @param {?proto.google.protobuf.UInt64Value|undefined} value */\nproto.vertexvis.protobuf.scenetree.v1alpha1.LocateItemResponse.prototype.setLocatedIndex = function(value) {\n jspb.Message.setWrapperField(this, 1, value);\n};\n\n\nproto.vertexvis.protobuf.scenetree.v1alpha1.LocateItemResponse.prototype.clearLocatedIndex = function() {\n this.setLocatedIndex(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {!boolean}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.LocateItemResponse.prototype.hasLocatedIndex = function() {\n return jspb.Message.getField(this, 1) != null;\n};\n\n\n/**\n * optional bool requires_reload = 2;\n * Note that Boolean fields may be set to 0/1 when serialized from a Java server.\n * You should avoid comparisons like {@code val === true/false} in those cases.\n * @return {boolean}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.LocateItemResponse.prototype.getRequiresReload = function() {\n return /** @type {boolean} */ (jspb.Message.getFieldWithDefault(this, 2, false));\n};\n\n\n/** @param {boolean} value */\nproto.vertexvis.protobuf.scenetree.v1alpha1.LocateItemResponse.prototype.setRequiresReload = function(value) {\n jspb.Message.setProto3BooleanField(this, 2, value);\n};\n\n\n\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.ExpandAllRequest = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.vertexvis.protobuf.scenetree.v1alpha1.ExpandAllRequest, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n proto.vertexvis.protobuf.scenetree.v1alpha1.ExpandAllRequest.displayName = 'proto.vertexvis.protobuf.scenetree.v1alpha1.ExpandAllRequest';\n}\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto suitable for use in Soy templates.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n * com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS.\n * @param {boolean=} opt_includeInstance Whether to include the JSPB instance\n * for transitional soy proto support: http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.ExpandAllRequest.prototype.toObject = function(opt_includeInstance) {\n return proto.vertexvis.protobuf.scenetree.v1alpha1.ExpandAllRequest.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Whether to include the JSPB\n * instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.vertexvis.protobuf.scenetree.v1alpha1.ExpandAllRequest} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.ExpandAllRequest.toObject = function(includeInstance, msg) {\n var f, obj = {\n\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.vertexvis.protobuf.scenetree.v1alpha1.ExpandAllRequest}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.ExpandAllRequest.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.vertexvis.protobuf.scenetree.v1alpha1.ExpandAllRequest;\n return proto.vertexvis.protobuf.scenetree.v1alpha1.ExpandAllRequest.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.vertexvis.protobuf.scenetree.v1alpha1.ExpandAllRequest} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.vertexvis.protobuf.scenetree.v1alpha1.ExpandAllRequest}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.ExpandAllRequest.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.ExpandAllRequest.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.vertexvis.protobuf.scenetree.v1alpha1.ExpandAllRequest.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.vertexvis.protobuf.scenetree.v1alpha1.ExpandAllRequest} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.ExpandAllRequest.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n};\n\n\n\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.ExpandAllResponse = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.vertexvis.protobuf.scenetree.v1alpha1.ExpandAllResponse, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n proto.vertexvis.protobuf.scenetree.v1alpha1.ExpandAllResponse.displayName = 'proto.vertexvis.protobuf.scenetree.v1alpha1.ExpandAllResponse';\n}\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto suitable for use in Soy templates.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n * com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS.\n * @param {boolean=} opt_includeInstance Whether to include the JSPB instance\n * for transitional soy proto support: http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.ExpandAllResponse.prototype.toObject = function(opt_includeInstance) {\n return proto.vertexvis.protobuf.scenetree.v1alpha1.ExpandAllResponse.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Whether to include the JSPB\n * instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.vertexvis.protobuf.scenetree.v1alpha1.ExpandAllResponse} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.ExpandAllResponse.toObject = function(includeInstance, msg) {\n var f, obj = {\n\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.vertexvis.protobuf.scenetree.v1alpha1.ExpandAllResponse}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.ExpandAllResponse.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.vertexvis.protobuf.scenetree.v1alpha1.ExpandAllResponse;\n return proto.vertexvis.protobuf.scenetree.v1alpha1.ExpandAllResponse.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.vertexvis.protobuf.scenetree.v1alpha1.ExpandAllResponse} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.vertexvis.protobuf.scenetree.v1alpha1.ExpandAllResponse}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.ExpandAllResponse.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.ExpandAllResponse.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.vertexvis.protobuf.scenetree.v1alpha1.ExpandAllResponse.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.vertexvis.protobuf.scenetree.v1alpha1.ExpandAllResponse} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.ExpandAllResponse.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n};\n\n\n\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.CollapseAllRequest = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.vertexvis.protobuf.scenetree.v1alpha1.CollapseAllRequest, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n proto.vertexvis.protobuf.scenetree.v1alpha1.CollapseAllRequest.displayName = 'proto.vertexvis.protobuf.scenetree.v1alpha1.CollapseAllRequest';\n}\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto suitable for use in Soy templates.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n * com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS.\n * @param {boolean=} opt_includeInstance Whether to include the JSPB instance\n * for transitional soy proto support: http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.CollapseAllRequest.prototype.toObject = function(opt_includeInstance) {\n return proto.vertexvis.protobuf.scenetree.v1alpha1.CollapseAllRequest.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Whether to include the JSPB\n * instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.vertexvis.protobuf.scenetree.v1alpha1.CollapseAllRequest} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.CollapseAllRequest.toObject = function(includeInstance, msg) {\n var f, obj = {\n\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.vertexvis.protobuf.scenetree.v1alpha1.CollapseAllRequest}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.CollapseAllRequest.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.vertexvis.protobuf.scenetree.v1alpha1.CollapseAllRequest;\n return proto.vertexvis.protobuf.scenetree.v1alpha1.CollapseAllRequest.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.vertexvis.protobuf.scenetree.v1alpha1.CollapseAllRequest} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.vertexvis.protobuf.scenetree.v1alpha1.CollapseAllRequest}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.CollapseAllRequest.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.CollapseAllRequest.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.vertexvis.protobuf.scenetree.v1alpha1.CollapseAllRequest.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.vertexvis.protobuf.scenetree.v1alpha1.CollapseAllRequest} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.CollapseAllRequest.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n};\n\n\n\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.CollapseAllResponse = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.vertexvis.protobuf.scenetree.v1alpha1.CollapseAllResponse, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n proto.vertexvis.protobuf.scenetree.v1alpha1.CollapseAllResponse.displayName = 'proto.vertexvis.protobuf.scenetree.v1alpha1.CollapseAllResponse';\n}\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto suitable for use in Soy templates.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n * com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS.\n * @param {boolean=} opt_includeInstance Whether to include the JSPB instance\n * for transitional soy proto support: http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.CollapseAllResponse.prototype.toObject = function(opt_includeInstance) {\n return proto.vertexvis.protobuf.scenetree.v1alpha1.CollapseAllResponse.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Whether to include the JSPB\n * instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.vertexvis.protobuf.scenetree.v1alpha1.CollapseAllResponse} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.CollapseAllResponse.toObject = function(includeInstance, msg) {\n var f, obj = {\n\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.vertexvis.protobuf.scenetree.v1alpha1.CollapseAllResponse}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.CollapseAllResponse.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.vertexvis.protobuf.scenetree.v1alpha1.CollapseAllResponse;\n return proto.vertexvis.protobuf.scenetree.v1alpha1.CollapseAllResponse.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.vertexvis.protobuf.scenetree.v1alpha1.CollapseAllResponse} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.vertexvis.protobuf.scenetree.v1alpha1.CollapseAllResponse}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.CollapseAllResponse.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.CollapseAllResponse.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.vertexvis.protobuf.scenetree.v1alpha1.CollapseAllResponse.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.vertexvis.protobuf.scenetree.v1alpha1.CollapseAllResponse} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.CollapseAllResponse.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n};\n\n\n\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.GetNodeAncestorsRequest = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.vertexvis.protobuf.scenetree.v1alpha1.GetNodeAncestorsRequest, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n proto.vertexvis.protobuf.scenetree.v1alpha1.GetNodeAncestorsRequest.displayName = 'proto.vertexvis.protobuf.scenetree.v1alpha1.GetNodeAncestorsRequest';\n}\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto suitable for use in Soy templates.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n * com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS.\n * @param {boolean=} opt_includeInstance Whether to include the JSPB instance\n * for transitional soy proto support: http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.GetNodeAncestorsRequest.prototype.toObject = function(opt_includeInstance) {\n return proto.vertexvis.protobuf.scenetree.v1alpha1.GetNodeAncestorsRequest.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Whether to include the JSPB\n * instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.vertexvis.protobuf.scenetree.v1alpha1.GetNodeAncestorsRequest} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.GetNodeAncestorsRequest.toObject = function(includeInstance, msg) {\n var f, obj = {\n nodeId: (f = msg.getNodeId()) && core_protos_uuid_pb.Uuid.toObject(includeInstance, f)\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.vertexvis.protobuf.scenetree.v1alpha1.GetNodeAncestorsRequest}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.GetNodeAncestorsRequest.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.vertexvis.protobuf.scenetree.v1alpha1.GetNodeAncestorsRequest;\n return proto.vertexvis.protobuf.scenetree.v1alpha1.GetNodeAncestorsRequest.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.vertexvis.protobuf.scenetree.v1alpha1.GetNodeAncestorsRequest} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.vertexvis.protobuf.scenetree.v1alpha1.GetNodeAncestorsRequest}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.GetNodeAncestorsRequest.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = new core_protos_uuid_pb.Uuid;\n reader.readMessage(value,core_protos_uuid_pb.Uuid.deserializeBinaryFromReader);\n msg.setNodeId(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.GetNodeAncestorsRequest.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.vertexvis.protobuf.scenetree.v1alpha1.GetNodeAncestorsRequest.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.vertexvis.protobuf.scenetree.v1alpha1.GetNodeAncestorsRequest} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.GetNodeAncestorsRequest.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getNodeId();\n if (f != null) {\n writer.writeMessage(\n 1,\n f,\n core_protos_uuid_pb.Uuid.serializeBinaryToWriter\n );\n }\n};\n\n\n/**\n * optional vertexvis.protobuf.core.Uuid node_id = 1;\n * @return {?proto.vertexvis.protobuf.core.Uuid}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.GetNodeAncestorsRequest.prototype.getNodeId = function() {\n return /** @type{?proto.vertexvis.protobuf.core.Uuid} */ (\n jspb.Message.getWrapperField(this, core_protos_uuid_pb.Uuid, 1));\n};\n\n\n/** @param {?proto.vertexvis.protobuf.core.Uuid|undefined} value */\nproto.vertexvis.protobuf.scenetree.v1alpha1.GetNodeAncestorsRequest.prototype.setNodeId = function(value) {\n jspb.Message.setWrapperField(this, 1, value);\n};\n\n\nproto.vertexvis.protobuf.scenetree.v1alpha1.GetNodeAncestorsRequest.prototype.clearNodeId = function() {\n this.setNodeId(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {!boolean}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.GetNodeAncestorsRequest.prototype.hasNodeId = function() {\n return jspb.Message.getField(this, 1) != null;\n};\n\n\n\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.GetNodeAncestorsResponse = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, proto.vertexvis.protobuf.scenetree.v1alpha1.GetNodeAncestorsResponse.repeatedFields_, null);\n};\ngoog.inherits(proto.vertexvis.protobuf.scenetree.v1alpha1.GetNodeAncestorsResponse, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n proto.vertexvis.protobuf.scenetree.v1alpha1.GetNodeAncestorsResponse.displayName = 'proto.vertexvis.protobuf.scenetree.v1alpha1.GetNodeAncestorsResponse';\n}\n/**\n * List of repeated fields within this message type.\n * @private {!Array<number>}\n * @const\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.GetNodeAncestorsResponse.repeatedFields_ = [1];\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto suitable for use in Soy templates.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n * com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS.\n * @param {boolean=} opt_includeInstance Whether to include the JSPB instance\n * for transitional soy proto support: http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.GetNodeAncestorsResponse.prototype.toObject = function(opt_includeInstance) {\n return proto.vertexvis.protobuf.scenetree.v1alpha1.GetNodeAncestorsResponse.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Whether to include the JSPB\n * instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.vertexvis.protobuf.scenetree.v1alpha1.GetNodeAncestorsResponse} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.GetNodeAncestorsResponse.toObject = function(includeInstance, msg) {\n var f, obj = {\n itemsList: jspb.Message.toObjectList(msg.getItemsList(),\n scenetree_protos_domain_pb.Node.toObject, includeInstance)\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.vertexvis.protobuf.scenetree.v1alpha1.GetNodeAncestorsResponse}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.GetNodeAncestorsResponse.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.vertexvis.protobuf.scenetree.v1alpha1.GetNodeAncestorsResponse;\n return proto.vertexvis.protobuf.scenetree.v1alpha1.GetNodeAncestorsResponse.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.vertexvis.protobuf.scenetree.v1alpha1.GetNodeAncestorsResponse} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.vertexvis.protobuf.scenetree.v1alpha1.GetNodeAncestorsResponse}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.GetNodeAncestorsResponse.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = new scenetree_protos_domain_pb.Node;\n reader.readMessage(value,scenetree_protos_domain_pb.Node.deserializeBinaryFromReader);\n msg.addItems(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.GetNodeAncestorsResponse.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.vertexvis.protobuf.scenetree.v1alpha1.GetNodeAncestorsResponse.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.vertexvis.protobuf.scenetree.v1alpha1.GetNodeAncestorsResponse} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.GetNodeAncestorsResponse.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getItemsList();\n if (f.length > 0) {\n writer.writeRepeatedMessage(\n 1,\n f,\n scenetree_protos_domain_pb.Node.serializeBinaryToWriter\n );\n }\n};\n\n\n/**\n * repeated Node items = 1;\n * @return {!Array<!proto.vertexvis.protobuf.scenetree.v1alpha1.Node>}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.GetNodeAncestorsResponse.prototype.getItemsList = function() {\n return /** @type{!Array<!proto.vertexvis.protobuf.scenetree.v1alpha1.Node>} */ (\n jspb.Message.getRepeatedWrapperField(this, scenetree_protos_domain_pb.Node, 1));\n};\n\n\n/** @param {!Array<!proto.vertexvis.protobuf.scenetree.v1alpha1.Node>} value */\nproto.vertexvis.protobuf.scenetree.v1alpha1.GetNodeAncestorsResponse.prototype.setItemsList = function(value) {\n jspb.Message.setRepeatedWrapperField(this, 1, value);\n};\n\n\n/**\n * @param {!proto.vertexvis.protobuf.scenetree.v1alpha1.Node=} opt_value\n * @param {number=} opt_index\n * @return {!proto.vertexvis.protobuf.scenetree.v1alpha1.Node}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.GetNodeAncestorsResponse.prototype.addItems = function(opt_value, opt_index) {\n return jspb.Message.addToRepeatedWrapperField(this, 1, opt_value, proto.vertexvis.protobuf.scenetree.v1alpha1.Node, opt_index);\n};\n\n\nproto.vertexvis.protobuf.scenetree.v1alpha1.GetNodeAncestorsResponse.prototype.clearItemsList = function() {\n this.setItemsList([]);\n};\n\n\n\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.GetAvailableColumnsRequest = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.vertexvis.protobuf.scenetree.v1alpha1.GetAvailableColumnsRequest, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n proto.vertexvis.protobuf.scenetree.v1alpha1.GetAvailableColumnsRequest.displayName = 'proto.vertexvis.protobuf.scenetree.v1alpha1.GetAvailableColumnsRequest';\n}\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto suitable for use in Soy templates.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n * com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS.\n * @param {boolean=} opt_includeInstance Whether to include the JSPB instance\n * for transitional soy proto support: http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.GetAvailableColumnsRequest.prototype.toObject = function(opt_includeInstance) {\n return proto.vertexvis.protobuf.scenetree.v1alpha1.GetAvailableColumnsRequest.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Whether to include the JSPB\n * instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.vertexvis.protobuf.scenetree.v1alpha1.GetAvailableColumnsRequest} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.GetAvailableColumnsRequest.toObject = function(includeInstance, msg) {\n var f, obj = {\n\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.vertexvis.protobuf.scenetree.v1alpha1.GetAvailableColumnsRequest}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.GetAvailableColumnsRequest.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.vertexvis.protobuf.scenetree.v1alpha1.GetAvailableColumnsRequest;\n return proto.vertexvis.protobuf.scenetree.v1alpha1.GetAvailableColumnsRequest.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.vertexvis.protobuf.scenetree.v1alpha1.GetAvailableColumnsRequest} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.vertexvis.protobuf.scenetree.v1alpha1.GetAvailableColumnsRequest}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.GetAvailableColumnsRequest.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.GetAvailableColumnsRequest.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.vertexvis.protobuf.scenetree.v1alpha1.GetAvailableColumnsRequest.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.vertexvis.protobuf.scenetree.v1alpha1.GetAvailableColumnsRequest} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.GetAvailableColumnsRequest.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n};\n\n\n\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.GetAvailableColumnsResponse = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, proto.vertexvis.protobuf.scenetree.v1alpha1.GetAvailableColumnsResponse.repeatedFields_, null);\n};\ngoog.inherits(proto.vertexvis.protobuf.scenetree.v1alpha1.GetAvailableColumnsResponse, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n proto.vertexvis.protobuf.scenetree.v1alpha1.GetAvailableColumnsResponse.displayName = 'proto.vertexvis.protobuf.scenetree.v1alpha1.GetAvailableColumnsResponse';\n}\n/**\n * List of repeated fields within this message type.\n * @private {!Array<number>}\n * @const\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.GetAvailableColumnsResponse.repeatedFields_ = [1];\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto suitable for use in Soy templates.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n * com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS.\n * @param {boolean=} opt_includeInstance Whether to include the JSPB instance\n * for transitional soy proto support: http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.GetAvailableColumnsResponse.prototype.toObject = function(opt_includeInstance) {\n return proto.vertexvis.protobuf.scenetree.v1alpha1.GetAvailableColumnsResponse.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Whether to include the JSPB\n * instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.vertexvis.protobuf.scenetree.v1alpha1.GetAvailableColumnsResponse} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.GetAvailableColumnsResponse.toObject = function(includeInstance, msg) {\n var f, obj = {\n keysList: jspb.Message.toObjectList(msg.getKeysList(),\n scenetree_protos_domain_pb.ColumnKey.toObject, includeInstance)\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.vertexvis.protobuf.scenetree.v1alpha1.GetAvailableColumnsResponse}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.GetAvailableColumnsResponse.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.vertexvis.protobuf.scenetree.v1alpha1.GetAvailableColumnsResponse;\n return proto.vertexvis.protobuf.scenetree.v1alpha1.GetAvailableColumnsResponse.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.vertexvis.protobuf.scenetree.v1alpha1.GetAvailableColumnsResponse} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.vertexvis.protobuf.scenetree.v1alpha1.GetAvailableColumnsResponse}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.GetAvailableColumnsResponse.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = new scenetree_protos_domain_pb.ColumnKey;\n reader.readMessage(value,scenetree_protos_domain_pb.ColumnKey.deserializeBinaryFromReader);\n msg.addKeys(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.GetAvailableColumnsResponse.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.vertexvis.protobuf.scenetree.v1alpha1.GetAvailableColumnsResponse.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.vertexvis.protobuf.scenetree.v1alpha1.GetAvailableColumnsResponse} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.GetAvailableColumnsResponse.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getKeysList();\n if (f.length > 0) {\n writer.writeRepeatedMessage(\n 1,\n f,\n scenetree_protos_domain_pb.ColumnKey.serializeBinaryToWriter\n );\n }\n};\n\n\n/**\n * repeated ColumnKey keys = 1;\n * @return {!Array<!proto.vertexvis.protobuf.scenetree.v1alpha1.ColumnKey>}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.GetAvailableColumnsResponse.prototype.getKeysList = function() {\n return /** @type{!Array<!proto.vertexvis.protobuf.scenetree.v1alpha1.ColumnKey>} */ (\n jspb.Message.getRepeatedWrapperField(this, scenetree_protos_domain_pb.ColumnKey, 1));\n};\n\n\n/** @param {!Array<!proto.vertexvis.protobuf.scenetree.v1alpha1.ColumnKey>} value */\nproto.vertexvis.protobuf.scenetree.v1alpha1.GetAvailableColumnsResponse.prototype.setKeysList = function(value) {\n jspb.Message.setRepeatedWrapperField(this, 1, value);\n};\n\n\n/**\n * @param {!proto.vertexvis.protobuf.scenetree.v1alpha1.ColumnKey=} opt_value\n * @param {number=} opt_index\n * @return {!proto.vertexvis.protobuf.scenetree.v1alpha1.ColumnKey}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.GetAvailableColumnsResponse.prototype.addKeys = function(opt_value, opt_index) {\n return jspb.Message.addToRepeatedWrapperField(this, 1, opt_value, proto.vertexvis.protobuf.scenetree.v1alpha1.ColumnKey, opt_index);\n};\n\n\nproto.vertexvis.protobuf.scenetree.v1alpha1.GetAvailableColumnsResponse.prototype.clearKeysList = function() {\n this.setKeysList([]);\n};\n\n\ngoog.object.extend(exports, proto.vertexvis.protobuf.scenetree.v1alpha1);\n","import { CustomError } from '../../../lib/errors';\n\nexport enum SceneTreeErrorCode {\n UNKNOWN = 0,\n SCENE_TREE_DISABLED = 1,\n MISSING_VIEWER = 2,\n DISCONNECTED = 3,\n SUBSCRIPTION_FAILURE = 4,\n UNAUTHORIZED = 5,\n ABORTED = 6,\n}\n\nexport class SceneTreeErrorDetails {\n public readonly message: string;\n\n public constructor(\n public readonly name: keyof typeof SceneTreeErrorCode,\n public readonly code: SceneTreeErrorCode,\n public readonly link?: string\n ) {\n this.message = getSceneTreeErrorMessage(code);\n }\n}\n\nfunction getSceneTreeErrorMessage(code: SceneTreeErrorCode): string {\n switch (code) {\n case SceneTreeErrorCode.UNKNOWN:\n return 'An unknown error occurred.';\n case SceneTreeErrorCode.SCENE_TREE_DISABLED:\n return 'The tree for this scene is not enabled. Enable the tree for this scene to interact with the tree.';\n case SceneTreeErrorCode.MISSING_VIEWER:\n return 'Could not find reference to the viewer.';\n case SceneTreeErrorCode.DISCONNECTED:\n return 'Disconnected from server.';\n case SceneTreeErrorCode.SUBSCRIPTION_FAILURE:\n return 'The tree was not able to receive subscription events.';\n case SceneTreeErrorCode.UNAUTHORIZED:\n return 'The tree was unauthorized to connect to the server. The associated Viewer may not be connected.';\n case SceneTreeErrorCode.ABORTED:\n return 'Unable to load the tree for this scene.';\n }\n}\n\nexport class SceneTreeError extends CustomError {\n public constructor(message: string, e?: Error) {\n super(message, e);\n\n // Allows for `instanceof` checks.\n Object.setPrototypeOf(this, SceneTreeError.prototype);\n }\n}\n\nexport class SceneTreeUnauthorizedError extends SceneTreeError {\n public constructor(message: string, e?: Error) {\n super(message, e);\n\n // Allows for `instanceof` checks.\n Object.setPrototypeOf(this, SceneTreeUnauthorizedError.prototype);\n }\n}\n\nexport class SceneTreeConnectionCancelledError extends SceneTreeError {\n public constructor(message: string, e?: Error) {\n super(message, e);\n\n // Allows for `instanceof` checks.\n Object.setPrototypeOf(this, SceneTreeConnectionCancelledError.prototype);\n }\n}\n\nexport class SceneTreeOperationFailedError extends SceneTreeError {\n public constructor(message: string, e?: Error) {\n super(message, e);\n\n // Allows for `instanceof` checks.\n Object.setPrototypeOf(this, SceneTreeOperationFailedError.prototype);\n }\n}\n","// package: vertexvis.protobuf.scenetree.v1alpha1\n// file: scenetree/protos/scene_tree_api.proto\n\nvar scenetree_protos_scene_tree_api_pb = require(\"../../scenetree/protos/scene_tree_api_pb\");\nvar grpc = require(\"@improbable-eng/grpc-web\").grpc;\n\nvar SceneTreeAPI = (function () {\n function SceneTreeAPI() {}\n SceneTreeAPI.serviceName = \"vertexvis.protobuf.scenetree.v1alpha1.SceneTreeAPI\";\n return SceneTreeAPI;\n}());\n\nSceneTreeAPI.GetTree = {\n methodName: \"GetTree\",\n service: SceneTreeAPI,\n requestStream: false,\n responseStream: false,\n requestType: scenetree_protos_scene_tree_api_pb.GetTreeRequest,\n responseType: scenetree_protos_scene_tree_api_pb.GetTreeResponse\n};\n\nSceneTreeAPI.ExpandNode = {\n methodName: \"ExpandNode\",\n service: SceneTreeAPI,\n requestStream: false,\n responseStream: false,\n requestType: scenetree_protos_scene_tree_api_pb.ExpandNodeRequest,\n responseType: scenetree_protos_scene_tree_api_pb.ExpandNodeResponse\n};\n\nSceneTreeAPI.CollapseNode = {\n methodName: \"CollapseNode\",\n service: SceneTreeAPI,\n requestStream: false,\n responseStream: false,\n requestType: scenetree_protos_scene_tree_api_pb.CollapseNodeRequest,\n responseType: scenetree_protos_scene_tree_api_pb.CollapseNodeResponse\n};\n\nSceneTreeAPI.Subscribe = {\n methodName: \"Subscribe\",\n service: SceneTreeAPI,\n requestStream: false,\n responseStream: true,\n requestType: scenetree_protos_scene_tree_api_pb.SubscribeRequest,\n responseType: scenetree_protos_scene_tree_api_pb.SubscribeResponse\n};\n\nSceneTreeAPI.Filter = {\n methodName: \"Filter\",\n service: SceneTreeAPI,\n requestStream: false,\n responseStream: false,\n requestType: scenetree_protos_scene_tree_api_pb.FilterRequest,\n responseType: scenetree_protos_scene_tree_api_pb.FilterResponse\n};\n\nSceneTreeAPI.LocateItem = {\n methodName: \"LocateItem\",\n service: SceneTreeAPI,\n requestStream: false,\n responseStream: false,\n requestType: scenetree_protos_scene_tree_api_pb.LocateItemRequest,\n responseType: scenetree_protos_scene_tree_api_pb.LocateItemResponse\n};\n\nSceneTreeAPI.ExpandAll = {\n methodName: \"ExpandAll\",\n service: SceneTreeAPI,\n requestStream: false,\n responseStream: false,\n requestType: scenetree_protos_scene_tree_api_pb.ExpandAllRequest,\n responseType: scenetree_protos_scene_tree_api_pb.ExpandAllResponse\n};\n\nSceneTreeAPI.CollapseAll = {\n methodName: \"CollapseAll\",\n service: SceneTreeAPI,\n requestStream: false,\n responseStream: false,\n requestType: scenetree_protos_scene_tree_api_pb.CollapseAllRequest,\n responseType: scenetree_protos_scene_tree_api_pb.CollapseAllResponse\n};\n\nSceneTreeAPI.GetNodeAncestors = {\n methodName: \"GetNodeAncestors\",\n service: SceneTreeAPI,\n requestStream: false,\n responseStream: false,\n requestType: scenetree_protos_scene_tree_api_pb.GetNodeAncestorsRequest,\n responseType: scenetree_protos_scene_tree_api_pb.GetNodeAncestorsResponse\n};\n\nSceneTreeAPI.GetAvailableColumns = {\n methodName: \"GetAvailableColumns\",\n service: SceneTreeAPI,\n requestStream: false,\n responseStream: false,\n requestType: scenetree_protos_scene_tree_api_pb.GetAvailableColumnsRequest,\n responseType: scenetree_protos_scene_tree_api_pb.GetAvailableColumnsResponse\n};\n\nexports.SceneTreeAPI = SceneTreeAPI;\n\nfunction SceneTreeAPIClient(serviceHost, options) {\n this.serviceHost = serviceHost;\n this.options = options || {};\n}\n\nSceneTreeAPIClient.prototype.getTree = function getTree(requestMessage, metadata, callback) {\n if (arguments.length === 2) {\n callback = arguments[1];\n }\n var client = grpc.unary(SceneTreeAPI.GetTree, {\n request: requestMessage,\n host: this.serviceHost,\n metadata: metadata,\n transport: this.options.transport,\n debug: this.options.debug,\n onEnd: function (response) {\n if (callback) {\n if (response.status !== grpc.Code.OK) {\n var err = new Error(response.statusMessage);\n err.code = response.status;\n err.metadata = response.trailers;\n callback(err, null);\n } else {\n callback(null, response.message);\n }\n }\n }\n });\n return {\n cancel: function () {\n callback = null;\n client.close();\n }\n };\n};\n\nSceneTreeAPIClient.prototype.expandNode = function expandNode(requestMessage, metadata, callback) {\n if (arguments.length === 2) {\n callback = arguments[1];\n }\n var client = grpc.unary(SceneTreeAPI.ExpandNode, {\n request: requestMessage,\n host: this.serviceHost,\n metadata: metadata,\n transport: this.options.transport,\n debug: this.options.debug,\n onEnd: function (response) {\n if (callback) {\n if (response.status !== grpc.Code.OK) {\n var err = new Error(response.statusMessage);\n err.code = response.status;\n err.metadata = response.trailers;\n callback(err, null);\n } else {\n callback(null, response.message);\n }\n }\n }\n });\n return {\n cancel: function () {\n callback = null;\n client.close();\n }\n };\n};\n\nSceneTreeAPIClient.prototype.collapseNode = function collapseNode(requestMessage, metadata, callback) {\n if (arguments.length === 2) {\n callback = arguments[1];\n }\n var client = grpc.unary(SceneTreeAPI.CollapseNode, {\n request: requestMessage,\n host: this.serviceHost,\n metadata: metadata,\n transport: this.options.transport,\n debug: this.options.debug,\n onEnd: function (response) {\n if (callback) {\n if (response.status !== grpc.Code.OK) {\n var err = new Error(response.statusMessage);\n err.code = response.status;\n err.metadata = response.trailers;\n callback(err, null);\n } else {\n callback(null, response.message);\n }\n }\n }\n });\n return {\n cancel: function () {\n callback = null;\n client.close();\n }\n };\n};\n\nSceneTreeAPIClient.prototype.subscribe = function subscribe(requestMessage, metadata) {\n var listeners = {\n data: [],\n end: [],\n status: []\n };\n var client = grpc.invoke(SceneTreeAPI.Subscribe, {\n request: requestMessage,\n host: this.serviceHost,\n metadata: metadata,\n transport: this.options.transport,\n debug: this.options.debug,\n onMessage: function (responseMessage) {\n listeners.data.forEach(function (handler) {\n handler(responseMessage);\n });\n },\n onEnd: function (status, statusMessage, trailers) {\n listeners.status.forEach(function (handler) {\n handler({ code: status, details: statusMessage, metadata: trailers });\n });\n listeners.end.forEach(function (handler) {\n handler({ code: status, details: statusMessage, metadata: trailers });\n });\n listeners = null;\n }\n });\n return {\n on: function (type, handler) {\n listeners[type].push(handler);\n return this;\n },\n cancel: function () {\n listeners = null;\n client.close();\n }\n };\n};\n\nSceneTreeAPIClient.prototype.filter = function filter(requestMessage, metadata, callback) {\n if (arguments.length === 2) {\n callback = arguments[1];\n }\n var client = grpc.unary(SceneTreeAPI.Filter, {\n request: requestMessage,\n host: this.serviceHost,\n metadata: metadata,\n transport: this.options.transport,\n debug: this.options.debug,\n onEnd: function (response) {\n if (callback) {\n if (response.status !== grpc.Code.OK) {\n var err = new Error(response.statusMessage);\n err.code = response.status;\n err.metadata = response.trailers;\n callback(err, null);\n } else {\n callback(null, response.message);\n }\n }\n }\n });\n return {\n cancel: function () {\n callback = null;\n client.close();\n }\n };\n};\n\nSceneTreeAPIClient.prototype.locateItem = function locateItem(requestMessage, metadata, callback) {\n if (arguments.length === 2) {\n callback = arguments[1];\n }\n var client = grpc.unary(SceneTreeAPI.LocateItem, {\n request: requestMessage,\n host: this.serviceHost,\n metadata: metadata,\n transport: this.options.transport,\n debug: this.options.debug,\n onEnd: function (response) {\n if (callback) {\n if (response.status !== grpc.Code.OK) {\n var err = new Error(response.statusMessage);\n err.code = response.status;\n err.metadata = response.trailers;\n callback(err, null);\n } else {\n callback(null, response.message);\n }\n }\n }\n });\n return {\n cancel: function () {\n callback = null;\n client.close();\n }\n };\n};\n\nSceneTreeAPIClient.prototype.expandAll = function expandAll(requestMessage, metadata, callback) {\n if (arguments.length === 2) {\n callback = arguments[1];\n }\n var client = grpc.unary(SceneTreeAPI.ExpandAll, {\n request: requestMessage,\n host: this.serviceHost,\n metadata: metadata,\n transport: this.options.transport,\n debug: this.options.debug,\n onEnd: function (response) {\n if (callback) {\n if (response.status !== grpc.Code.OK) {\n var err = new Error(response.statusMessage);\n err.code = response.status;\n err.metadata = response.trailers;\n callback(err, null);\n } else {\n callback(null, response.message);\n }\n }\n }\n });\n return {\n cancel: function () {\n callback = null;\n client.close();\n }\n };\n};\n\nSceneTreeAPIClient.prototype.collapseAll = function collapseAll(requestMessage, metadata, callback) {\n if (arguments.length === 2) {\n callback = arguments[1];\n }\n var client = grpc.unary(SceneTreeAPI.CollapseAll, {\n request: requestMessage,\n host: this.serviceHost,\n metadata: metadata,\n transport: this.options.transport,\n debug: this.options.debug,\n onEnd: function (response) {\n if (callback) {\n if (response.status !== grpc.Code.OK) {\n var err = new Error(response.statusMessage);\n err.code = response.status;\n err.metadata = response.trailers;\n callback(err, null);\n } else {\n callback(null, response.message);\n }\n }\n }\n });\n return {\n cancel: function () {\n callback = null;\n client.close();\n }\n };\n};\n\nSceneTreeAPIClient.prototype.getNodeAncestors = function getNodeAncestors(requestMessage, metadata, callback) {\n if (arguments.length === 2) {\n callback = arguments[1];\n }\n var client = grpc.unary(SceneTreeAPI.GetNodeAncestors, {\n request: requestMessage,\n host: this.serviceHost,\n metadata: metadata,\n transport: this.options.transport,\n debug: this.options.debug,\n onEnd: function (response) {\n if (callback) {\n if (response.status !== grpc.Code.OK) {\n var err = new Error(response.statusMessage);\n err.code = response.status;\n err.metadata = response.trailers;\n callback(err, null);\n } else {\n callback(null, response.message);\n }\n }\n }\n });\n return {\n cancel: function () {\n callback = null;\n client.close();\n }\n };\n};\n\nSceneTreeAPIClient.prototype.getAvailableColumns = function getAvailableColumns(requestMessage, metadata, callback) {\n if (arguments.length === 2) {\n callback = arguments[1];\n }\n var client = grpc.unary(SceneTreeAPI.GetAvailableColumns, {\n request: requestMessage,\n host: this.serviceHost,\n metadata: metadata,\n transport: this.options.transport,\n debug: this.options.debug,\n onEnd: function (response) {\n if (callback) {\n if (response.status !== grpc.Code.OK) {\n var err = new Error(response.statusMessage);\n err.code = response.status;\n err.metadata = response.trailers;\n callback(err, null);\n } else {\n callback(null, response.message);\n }\n }\n }\n });\n return {\n cancel: function () {\n callback = null;\n client.close();\n }\n };\n};\n\nexports.SceneTreeAPIClient = SceneTreeAPIClient;\n\n","import { grpc } from '@improbable-eng/grpc-web';\nimport {\n Transport,\n TransportOptions,\n} from '@improbable-eng/grpc-web/dist/typings/transports/Transport';\nimport {\n SceneTreeAPI,\n ServiceError,\n} from '@vertexvis/scene-tree-protos/scenetree/protos/scene_tree_api_pb_service';\n\nexport function isGrpcServiceError(err: any): err is ServiceError {\n return typeof err.code === 'number' && err.hasOwnProperty('metadata');\n}\n\nexport function webSocketSubscriptionTransportFactory(\n options: TransportOptions\n): Transport {\n if (\n options.methodDefinition.methodName === SceneTreeAPI.Subscribe.methodName\n ) {\n return grpc.WebsocketTransport()(options);\n } else {\n return grpc.CrossBrowserHttpTransport({ withCredentials: false })(options);\n }\n}\n","function e(e){this.message=e}e.prototype=new Error,e.prototype.name=\"InvalidCharacterError\";var r=\"undefined\"!=typeof window&&window.atob&&window.atob.bind(window)||function(r){var t=String(r).replace(/=+$/,\"\");if(t.length%4==1)throw new e(\"'atob' failed: The string to be decoded is not correctly encoded.\");for(var n,o,a=0,i=0,c=\"\";o=t.charAt(i++);~o&&(n=a%4?64*n+o:o,a++%4)?c+=String.fromCharCode(255&n>>(-2*a&6)):0)o=\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\".indexOf(o);return c};function t(e){var t=e.replace(/-/g,\"+\").replace(/_/g,\"/\");switch(t.length%4){case 0:break;case 2:t+=\"==\";break;case 3:t+=\"=\";break;default:throw\"Illegal base64url string!\"}try{return function(e){return decodeURIComponent(r(e).replace(/(.)/g,(function(e,r){var t=r.charCodeAt(0).toString(16).toUpperCase();return t.length<2&&(t=\"0\"+t),\"%\"+t})))}(t)}catch(e){return r(t)}}function n(e){this.message=e}function o(e,r){if(\"string\"!=typeof e)throw new n(\"Invalid token specified\");var o=!0===(r=r||{}).header?0:1;try{return JSON.parse(t(e.split(\".\")[o]))}catch(e){throw new n(\"Invalid token specified: \"+e.message)}}n.prototype=new Error,n.prototype.name=\"InvalidTokenError\";export default o;export{n as InvalidTokenError};\n//# sourceMappingURL=jwt-decode.esm.js.map\n","import jwtDecode, { JwtPayload } from 'jwt-decode';\n\nexport interface SceneTreeJwtToken extends JwtPayload {\n view: string;\n}\n\nexport function decodeSceneTreeJwt(jwt: string): SceneTreeJwtToken {\n return jwtDecode<SceneTreeJwtToken>(jwt);\n}\n","import { grpc } from '@improbable-eng/grpc-web';\nimport { OffsetPager } from '@vertexvis/scene-tree-protos/core/protos/paging_pb';\nimport { Uuid } from '@vertexvis/scene-tree-protos/core/protos/uuid_pb';\nimport { Node } from '@vertexvis/scene-tree-protos/scenetree/protos/domain_pb';\nimport {\n CollapseAllRequest,\n CollapseNodeRequest,\n ExpandAllRequest,\n ExpandNodeRequest,\n FilterRequest,\n FilterResponse,\n GetAvailableColumnsRequest,\n GetAvailableColumnsResponse,\n GetNodeAncestorsRequest,\n GetNodeAncestorsResponse,\n GetTreeRequest,\n GetTreeResponse,\n LocateItemRequest,\n LocateItemResponse,\n SubscribeRequest,\n SubscribeResponse,\n} from '@vertexvis/scene-tree-protos/scenetree/protos/scene_tree_api_pb';\nimport {\n ResponseStream,\n SceneTreeAPIClient,\n ServiceError,\n UnaryResponse,\n} from '@vertexvis/scene-tree-protos/scenetree/protos/scene_tree_api_pb_service';\nimport { Disposable, EventDispatcher, Listener } from '@vertexvis/utils';\n\nimport { MetadataKey } from '../types';\nimport {\n SceneTreeConnectionCancelledError,\n SceneTreeError,\n SceneTreeErrorCode,\n SceneTreeErrorDetails,\n SceneTreeOperationFailedError,\n SceneTreeUnauthorizedError,\n} from './errors';\nimport { isGrpcServiceError } from './grpc';\nimport { decodeSceneTreeJwt } from './jwt';\nimport { fromNodeProto, isLoadedRow, Row } from './row';\n\nexport interface ConnectOptions {\n spinnerDelay: number;\n idleReconnectInSeconds?: number;\n lostConnectionReconnectInSeconds?: number;\n subscriptionHandshakeGracePeriodInMs?: number;\n}\n\nexport type JwtProvider = () => string | undefined;\n\nexport interface SceneTreeState {\n totalRows: number;\n totalFilteredRows?: number;\n rows: Row[];\n connection: ConnectionState;\n isSearching: boolean;\n shouldShowLoading?: boolean;\n shouldShowEmptyResults?: boolean;\n filterTerm?: string;\n handshakeReceived?: boolean;\n firstFetchComplete?: boolean;\n}\n\ninterface Page {\n id: number;\n index: number;\n metadataKeys: MetadataKey[];\n res: Promise<GetTreeResponse>;\n}\n\nexport interface DisconnectedState {\n type: 'disconnected';\n jwtProvider?: JwtProvider;\n sceneViewId?: string;\n}\n\nexport interface ConnectingState {\n type: 'connecting';\n jwtProvider: JwtProvider;\n sceneViewId: string;\n}\n\nexport interface SubscriptionStatusState {\n attempt: number;\n stream: ResponseStream<SubscribeResponse>;\n}\n\nexport interface ConnectedState {\n type: 'connected';\n jwtProvider: JwtProvider;\n sceneViewId: string;\n subscription: Disposable;\n subscriptionStatusState?: SubscriptionStatusState;\n}\n\nexport interface ConnectionFailedState {\n type: 'failure';\n details: SceneTreeErrorDetails;\n jwtProvider: JwtProvider;\n sceneViewId: string;\n}\n\nexport interface ConnectionCancelledState {\n type: 'cancelled';\n jwtProvider?: JwtProvider;\n sceneViewId?: string;\n}\n\n/**\n * A set of options to configure tree filtering behavior.\n */\nexport interface FilterTreeOptions {\n /**\n * Indicates if the filter should include nodes that within collapsed parent\n * nodes.\n */\n includeCollapsed?: boolean;\n\n /**\n * Indicates if the filter should be an exact match with the results.\n */\n exactMatch?: boolean;\n\n /**\n * The metadata keys to filter the tree on.\n */\n columns?: MetadataKey[];\n}\n\ntype ConnectionState =\n | DisconnectedState\n | ConnectingState\n | ConnectedState\n | ConnectionFailedState\n | ConnectionCancelledState;\n\n/**\n * The `SceneTreeController` is responsible for coordinating interactions of the\n * view, fetching and mutating tree data on the server, maintaining state and\n * notifying the view about state changes.\n */\nexport class SceneTreeController {\n private static IDLE_RECONNECT_IN_SECONDS = 4 * 60;\n private static LOST_CONNECTION_RECONNECT_IN_SECONDS = 2;\n private static MAX_SUBSCRIPTION_RETRY_COUNT = 2;\n\n private nextPageId = 0;\n private pages = new Map<number, Page>();\n private activeRowRange = [0, 0];\n private metadataKeys: MetadataKey[] = [];\n private debugLogs = false;\n private pendingFilterGrpcRes?: UnaryResponse;\n\n private reconnectTimer?: number;\n private loadingTimer?: number;\n private subscriptionHandshakeTimer?: number;\n\n /**\n * A dispatcher that emits an event whenever the internal state has changed.\n */\n public onStateChange = new EventDispatcher<SceneTreeState>();\n\n private state: SceneTreeState = {\n totalRows: 0,\n isSearching: false,\n rows: [],\n connection: { type: 'disconnected' },\n };\n\n /**\n * The number of pages that have been fetched.\n */\n public get fetchedPageCount(): number {\n return this.pages.size;\n }\n\n /**\n * Indicates if the controller is connected to the tree backend, and can make\n * requests.\n */\n public get isConnected(): boolean {\n return this.state.connection.type === 'connected';\n }\n\n public constructor(\n private client: SceneTreeAPIClient,\n private rowLimit: number,\n private connectOptions: ConnectOptions = {\n spinnerDelay: 2000,\n subscriptionHandshakeGracePeriodInMs: 5000,\n }\n ) {}\n\n /**\n * Registers an event listener that will be invoked when the state changes\n *\n * @param listener The listener to add.\n * @returns A disposable that can be used to remove the listener.\n */\n public stateChanged(\n listener: Listener<SceneTreeState | undefined>\n ): Disposable {\n return this.onStateChange.on(listener);\n }\n\n public setDebugLogs(debugLogs: boolean): void {\n this.debugLogs = debugLogs;\n }\n\n private async handleSubscriptionHandshakeTimeout(\n jwtProvider: JwtProvider,\n sceneViewId: string\n ): Promise<void> {\n const connection = this.getState().connection;\n if (\n this.isConnectedState(connection) &&\n connection.subscriptionStatusState?.attempt != null &&\n connection.subscriptionStatusState.attempt <\n SceneTreeController.MAX_SUBSCRIPTION_RETRY_COUNT\n ) {\n const newAttempt = connection.subscriptionStatusState.attempt + 1;\n console.warn(\n `Failed to subscribe within the allotted timeout. Retry attempt={${newAttempt}}`\n );\n connection.subscriptionStatusState.stream.cancel();\n this.clearHandshakeTimer();\n\n const stream = await this.subscribe();\n\n this.invalidateAfterOffset(0);\n this.fetchUnloadedPagesInActiveRows();\n\n this.updateState({\n ...this.state,\n connection: {\n ...connection,\n type: 'connected',\n subscription: {\n dispose: () => stream.cancel(),\n },\n subscriptionStatusState: {\n attempt: newAttempt,\n stream,\n },\n },\n });\n\n this.subscriptionHandshakeTimer = window.setTimeout(() => {\n this.handleSubscriptionHandshakeTimeout(jwtProvider, sceneViewId);\n }, this.connectOptions.subscriptionHandshakeGracePeriodInMs);\n } else {\n this.updateState({\n ...this.state,\n connection: {\n type: 'failure',\n jwtProvider,\n sceneViewId,\n details: new SceneTreeErrorDetails(\n 'SUBSCRIPTION_FAILURE',\n SceneTreeErrorCode.SUBSCRIPTION_FAILURE\n ),\n },\n });\n }\n }\n\n public async connect(jwtProvider: JwtProvider): Promise<void> {\n const { connection } = this.state;\n const jwt = jwtProvider();\n\n if (jwt == null) {\n throw new SceneTreeUnauthorizedError(\n 'Cannot connect scene tree. JWT is undefined'\n );\n }\n\n const { view: sceneViewId } = decodeSceneTreeJwt(jwt);\n\n if (connection.sceneViewId !== sceneViewId) {\n this.disconnect(true);\n } else {\n this.disconnect(false);\n }\n\n const connecting: ConnectingState = {\n type: 'connecting',\n jwtProvider,\n sceneViewId,\n };\n this.updateState({ ...this.state, connection: connecting });\n\n try {\n this.log('Scene tree controller connecting.');\n\n this.restartLoadingTimer();\n // Ensure we have a subscription prior to attempting to get the first page\n // to make sure we receive any ListChange that comes through\n const stream = await this.subscribe();\n await this.fetchPage(0);\n\n if (this.state.connection.type !== 'cancelled') {\n this.updateState({\n ...this.state,\n connection: {\n jwtProvider,\n sceneViewId,\n type: 'connected',\n subscription: { dispose: () => stream.cancel() },\n subscriptionStatusState: {\n attempt: 0,\n stream,\n },\n },\n });\n\n this.restartHandshakeTimer(jwtProvider, sceneViewId);\n }\n } catch (e) {\n this.ifErrorIsFatal(e, () => {\n this.updateState({\n ...this.state,\n connection: {\n type: 'failure',\n jwtProvider,\n sceneViewId,\n details: this.getConnectionError(e),\n },\n });\n this.clearHandshakeTimer();\n throw e;\n });\n }\n\n this.startIdleReconnectTimer();\n }\n\n private clearReconnectTimer(): void {\n if (this.reconnectTimer != null) {\n window.clearTimeout(this.reconnectTimer);\n }\n }\n\n private restartHandshakeTimer(\n jwtProvider: JwtProvider,\n sceneViewId: string\n ): void {\n this.clearHandshakeTimer();\n\n if (!this.state.handshakeReceived) {\n this.subscriptionHandshakeTimer = window.setTimeout(() => {\n this.handleSubscriptionHandshakeTimeout(jwtProvider, sceneViewId);\n this.subscriptionHandshakeTimer = undefined;\n }, this.connectOptions.subscriptionHandshakeGracePeriodInMs);\n }\n }\n\n private clearHandshakeTimer(): void {\n if (this.subscriptionHandshakeTimer != null) {\n window.clearTimeout(this.subscriptionHandshakeTimer);\n this.subscriptionHandshakeTimer = undefined;\n }\n }\n\n private startIdleReconnectTimer(): void {\n this.startReconnectTimer(\n this.connectOptions.idleReconnectInSeconds ||\n SceneTreeController.IDLE_RECONNECT_IN_SECONDS\n );\n }\n\n private startConnectionLostReconnectTimer(): void {\n this.startReconnectTimer(\n this.connectOptions.lostConnectionReconnectInSeconds ||\n SceneTreeController.LOST_CONNECTION_RECONNECT_IN_SECONDS\n );\n }\n\n private startReconnectTimer(delayInSeconds: number): void {\n this.clearReconnectTimer();\n\n this.reconnectTimer = window.setTimeout(() => {\n if (this.state.connection.type === 'connected') {\n this.connect(this.state.connection.jwtProvider);\n }\n }, delayInSeconds * 1000);\n }\n\n public connectToViewer(viewer: HTMLVertexViewerElement): Disposable {\n const connectWithViewerJwt = async (): Promise<void> => {\n if (viewer.token != null) {\n this.log(\n 'Scene tree controller found viewer JWT. Attempting connection.'\n );\n\n try {\n await this.connect(() => viewer.token);\n } catch (e) {\n this.ifErrorIsFatal(e, () => {\n console.error('Scene tree controller errored connecting.', e);\n });\n }\n }\n };\n\n const handleSceneReady = (): void => {\n this.log('Scene tree controller received scene ready');\n connectWithViewerJwt();\n };\n\n connectWithViewerJwt();\n\n viewer.addEventListener('sceneReady', handleSceneReady);\n return {\n dispose: () => {\n viewer.removeEventListener('sceneReady', handleSceneReady);\n this.disconnect();\n },\n };\n }\n\n public disconnect(reset = false): void {\n this.log(`Scene tree controller disconnecting [reset=${reset}]`);\n\n this.clearHandshakeTimer();\n this.clearReconnectTimer();\n\n if (reset) {\n this.pages.clear();\n this.activeRowRange = [];\n }\n\n const { connection } = this.state;\n if (connection.type === 'connected') {\n connection.subscription.dispose();\n }\n\n this.updateState({\n connection: {\n type: 'disconnected',\n jwtProvider: connection.jwtProvider,\n sceneViewId: connection.sceneViewId,\n },\n isSearching: false,\n totalRows: reset ? 0 : this.state.totalRows,\n rows: reset ? [] : this.state.rows,\n filterTerm: reset ? undefined : this.state.filterTerm,\n totalFilteredRows: reset ? undefined : this.state.totalFilteredRows,\n shouldShowEmptyResults: reset\n ? undefined\n : this.state.shouldShowEmptyResults,\n handshakeReceived: reset ? undefined : this.state.handshakeReceived,\n firstFetchComplete: reset ? undefined : this.state.firstFetchComplete,\n });\n }\n\n public cancel(): void {\n this.log(`Scene tree controller cancelled`);\n\n this.clearHandshakeTimer();\n this.clearReconnectTimer();\n\n this.pages.clear();\n this.activeRowRange = [];\n\n const { connection } = this.state;\n if (connection.type === 'connected') {\n connection.subscription.dispose();\n }\n\n this.updateState({\n connection: {\n type: 'cancelled',\n jwtProvider: connection.jwtProvider,\n sceneViewId: connection.sceneViewId,\n },\n isSearching: false,\n totalRows: 0,\n rows: [],\n });\n }\n\n /**\n * Collapses a node with the given node ID.\n *\n * @param id A node ID to collapse.\n */\n public async collapseNode(id: string): Promise<void> {\n return this.ifConnectionHasJwt(async (jwt) => {\n const nodeId = new Uuid();\n nodeId.setHex(id);\n\n const req = new CollapseNodeRequest();\n req.setNodeId(nodeId);\n\n await this.requestUnary(jwt, (metadata, handler) =>\n this.client.collapseNode(req, metadata, handler)\n );\n });\n }\n\n /**\n * Expands a node with the given node ID.\n *\n * @param id A node ID to expand.\n */\n public async expandNode(id: string): Promise<void> {\n return this.ifConnectionHasJwt(async (jwt) => {\n const nodeId = new Uuid();\n nodeId.setHex(id);\n\n const req = new ExpandNodeRequest();\n req.setNodeId(nodeId);\n\n await this.requestUnary(jwt, (metadata, handler) =>\n this.client.expandNode(req, metadata, handler)\n );\n });\n }\n\n /**\n * Collapses all nodes in the tree.\n */\n public async collapseAll(): Promise<void> {\n return this.ifConnectionHasJwt(async (jwt) => {\n await this.requestUnary(jwt, (metadata, handler) =>\n this.client.collapseAll(new CollapseAllRequest(), metadata, handler)\n );\n });\n }\n\n /**\n * Expands all nodes in the tree.\n */\n public async expandAll(): Promise<void> {\n return this.ifConnectionHasJwt(async (jwt) => {\n await this.requestUnary(jwt, (metadata, handler) =>\n this.client.expandAll(new ExpandAllRequest(), metadata, handler)\n );\n });\n }\n\n /**\n * Invokes a network request that will expand all the parent nodes for the\n * node mapped to the given ID.\n *\n * @param id An ID of an item.\n * @returns A promise that resolves with the index of the node after\n * expansion.\n */\n public async expandParentNodes(id: string): Promise<number> {\n return this.ifConnectionHasJwt(async (jwt) => {\n const nodeId = new Uuid();\n nodeId.setHex(id);\n\n const req = new LocateItemRequest();\n req.setNodeId(nodeId);\n\n const res = await this.requestUnary<LocateItemResponse>(\n jwt,\n (metadata, handler) => this.client.locateItem(req, metadata, handler)\n );\n const { requiresReload, locatedIndex } = res.toObject();\n\n if (requiresReload) {\n this.invalidateAfterOffset(0);\n await this.fetchUnloadedPagesInActiveRows();\n }\n\n if (locatedIndex == null) {\n throw new SceneTreeOperationFailedError(\n 'Cannot locate node. Location index is undefined.'\n );\n }\n\n return locatedIndex.value;\n });\n }\n\n public async fetchNodeAncestors(nodeId: string): Promise<Node.AsObject[]> {\n return this.ifConnectionHasJwt(async (jwt) => {\n const nodeUuid = new Uuid();\n nodeUuid.setHex(nodeId);\n const req = new GetNodeAncestorsRequest();\n req.setNodeId(nodeUuid);\n\n const res = await this.requestUnary<GetNodeAncestorsResponse>(\n jwt,\n (metadata, handler) =>\n this.client.getNodeAncestors(req, metadata, handler)\n );\n\n return res.toObject().itemsList;\n });\n }\n\n /**\n * Fetches a page at the given index. Once the data has been fetched, the\n * controller will emit an `onStateChange` event that contains rows with the\n * fetched page. If a page is invalidated before the request completes, the\n * response is ignored.\n *\n * If the index is out of range, returns without fetching any data.\n *\n * @param index A 0 based index to fetch.\n */\n public async fetchPage(index: number): Promise<void> {\n return this.ifConnectionHasJwt(async (jwt) => {\n if (index < 0 || index > this.maxPages - 1) {\n return;\n }\n\n if (!this.pages.has(index)) {\n const offset = index * this.rowLimit;\n this.log('Scene tree fetching page', index, offset);\n const res = this.fetchTree(offset, this.rowLimit, jwt);\n const id = this.nextPageId++;\n const page = { id, res, index, metadataKeys: this.metadataKeys };\n this.pages.set(index, page);\n this.handlePageResult(page);\n }\n\n await this.pages.get(index)?.res;\n });\n }\n\n /**\n * Fetches a page that contains the given row offset.\n *\n * @param offset The row offset of the page to fetch.\n */\n public fetchPageAtOffset(offset: number): Promise<void> {\n const page = Math.floor(offset / this.rowLimit);\n return this.fetchPage(page);\n }\n\n /**\n * Fetches pages that contain the given row ranges.\n *\n * @param startOffset A start offset, inclusive.\n * @param endOffset The end offset, inclusive.\n */\n public async fetchRange(\n startOffset: number,\n endOffset: number\n ): Promise<void> {\n const startPage = Math.floor(startOffset / this.rowLimit);\n const endPage = Math.floor(endOffset / this.rowLimit);\n const [boundedStart, boundedEnd] = this.constrainPageRange(\n startPage,\n endPage\n );\n const pageCount = boundedEnd - boundedStart + 1;\n await Promise.all(\n Array.from({ length: pageCount }).map((_, page) => this.fetchPage(page))\n );\n }\n\n /**\n * Fetches the metadata keys for the current scene view.\n */\n public async fetchMetadataKeys(): Promise<MetadataKey[]> {\n return this.ifConnectionHasJwt(async (jwt) => {\n const res = await this.requestUnary<GetAvailableColumnsResponse>(\n jwt,\n (meta, handler) => {\n const req = new GetAvailableColumnsRequest();\n this.client.getAvailableColumns(req, meta, handler);\n }\n );\n\n return res.getKeysList().map((value) => value.getValue());\n });\n }\n\n /**\n * Performs a network request that will filter the nodes in the tree that\n * match the given term and options.\n *\n * @param term The filter term.\n * @param options The options to apply to the filter.\n */\n public async filter(\n term: string,\n options: FilterTreeOptions = {}\n ): Promise<void> {\n return this.ifConnectionHasJwt(async (jwt) => {\n this.updateState({\n ...this.state,\n isSearching: true,\n filterTerm: term !== '' ? term : undefined,\n });\n\n // Cancel any in-flight filter requests, and wait for the request\n // to complete prior to making another filter request. This prevents\n // a race condition between requests from different keystrokes.\n this.pendingFilterGrpcRes?.cancel();\n this.pendingFilterGrpcRes = undefined;\n\n if (this.state.filterTerm === term || term === '') {\n try {\n const res = await this.requestUnary<FilterResponse>(\n jwt,\n (metadata, handler) => {\n const req = new FilterRequest();\n req.setFilter(term);\n req.setFullTree(options.includeCollapsed ?? true);\n req.setExactMatch(!!options.exactMatch);\n if (options.columns) req.setColumnsKeysList(options.columns);\n\n this.pendingFilterGrpcRes = this.client.filter(\n req,\n metadata,\n handler\n );\n }\n );\n\n const { numberOfResults } = res.toObject();\n\n this.updateState({\n ...this.state,\n totalFilteredRows: numberOfResults,\n isSearching: false,\n });\n } catch (e) {\n console.error('Failed to filter search ', e);\n this.updateState({\n ...this.state,\n isSearching: false,\n });\n }\n }\n });\n }\n\n /**\n * Checks if the page at the given index is loaded.\n *\n * @param index A page index.\n * @returns `true` if the page is loaded. `false` otherwise.\n */\n public isPageLoaded(index: number): boolean {\n return this.pages.has(index);\n }\n\n /**\n * Returns a list of page indices within a range that have not been loaded.\n *\n * @param start The start page index, inclusive.\n * @param end The end page index, inclusive.\n * @returns A list of pages indices that have not been loaded.\n */\n public getNonLoadedPageIndexes(start: number, end: number): number[] {\n const [boundedStart, boundedEnd] = this.constrainPageRange(start, end);\n const pageCount = boundedEnd - boundedStart + 1;\n return Array.from({ length: pageCount })\n .map((_, i) => boundedStart + i)\n .filter((page) => !this.isPageLoaded(page));\n }\n\n /**\n * Returns the page at the given index, or `undefined` if one doesn't exist.\n *\n * @param index The index to return.\n * @returns A `Page` if found, otherwise `undefined`.\n */\n public getPage(index: number): Page | undefined {\n return this.pages.get(index);\n }\n\n /**\n * Clears page data that is outside a given range. Uses a distance algorithm\n * to removes pages that are furthest from either end of the range. This\n * method is useful for clearing out data that is not needed anymore to keep\n * memory pressure in the client low.\n *\n * @param startPage The index of the starting page in the range.\n * @param endPage The index of the ending page in the range.\n * @param threshold A minimum number of pages to keep. No cleanup is performed\n * if the number of fetched pages doesn't meet this threshold.\n */\n public invalidatePagesOutsideRange(\n startPage: number,\n endPage: number,\n threshold = 0\n ): void {\n const [boundedStart, boundedEnd] = this.constrainPageRange(\n startPage,\n endPage\n );\n const boundedThreshold = Math.max(boundedEnd - boundedStart, threshold);\n if (this.fetchedPageCount > boundedThreshold) {\n const pages = Array.from(this.pages.keys()).map((index) => {\n const distance =\n index < boundedStart ? boundedStart - index : index - boundedEnd;\n return { index, distance };\n });\n const sortedDesc = pages.sort((a, b) => b.distance - a.distance);\n\n sortedDesc\n .slice(0, pages.length - threshold)\n .forEach(({ index }) => this.invalidatePage(index));\n\n this.log(\n `Scene tree dropped ${pages.length - this.fetchedPageCount} pages`,\n this.pages\n );\n }\n }\n\n public setMetadataKeys(keys: MetadataKey[]): Promise<void> {\n this.metadataKeys = keys;\n\n if (this.state.connection.type === 'connected') {\n const [start, end] = this.activeRowRange;\n this.invalidateAfterOffset(0);\n return this.updateActiveRowRange(start, end);\n } else {\n return Promise.resolve();\n }\n }\n\n /**\n * Sets the active rows. Active rows dictate which pages will be refetched\n * when the tree changes.\n *\n * @param start The starting row index.\n * @param end The ending row index.\n * @returns A promise that resolves when the first page of data has been\n * loaded.\n */\n public async updateActiveRowRange(start: number, end: number): Promise<void> {\n this.activeRowRange = this.constrainRowOffsets(start, end);\n\n this.tryClearLoadingState();\n\n await this.fetchUnloadedPagesInActiveRows();\n }\n\n /**\n * Performs a network request that will listen to server-side changes of the\n * scene tree's data.\n */\n private subscribe(): Promise<ResponseStream<SubscribeResponse>> {\n return this.ifConnectionHasJwt((jwt) => {\n const stream = this.requestServerStream(jwt, (metadata) => {\n const sub = this.client.subscribe(new SubscribeRequest(), metadata);\n return sub;\n });\n\n stream.on('data', (msg: SubscribeResponse) => {\n if (msg.hasHandshake()) {\n this.clearHandshakeTimer();\n this.updateState({ ...this.state, handshakeReceived: true });\n\n // Verify that we've loaded the first page of the tree when we receive\n // a handshake in the case that the listener was not fully registered\n // when a `ListChange` was sent.\n if (this.state.firstFetchComplete) {\n this.log(\n 'Scene tree first fetch completed before handshake received, invalidating current pages'\n );\n\n this.invalidateAfterOffset(0);\n this.fetchUnloadedPagesInActiveRows();\n }\n }\n\n this.startIdleReconnectTimer();\n\n const { change } = msg.toObject();\n\n if (change?.listChange != null) {\n this.log('Received list change', change.listChange.start);\n this.invalidateAfterOffset(change.listChange.start);\n this.fetchUnloadedPagesInActiveRows();\n }\n\n const {\n hiddenList = [],\n shownList = [],\n partiallyVisibleList = [],\n deselectedList = [],\n selectedList = [],\n } = change?.ranges || {};\n\n if (partiallyVisibleList.length > 0) {\n this.log(\n 'Received partial visibility list change',\n partiallyVisibleList\n );\n\n partiallyVisibleList.forEach(({ start, end }) =>\n this.patchNodesInRange(start, end, () => ({\n partiallyVisible: true,\n }))\n );\n }\n\n if (hiddenList.length > 0) {\n this.log('Received hidden list change', hiddenList);\n\n hiddenList.forEach(({ start, end }) =>\n this.patchNodesInRange(start, end, () => ({\n visible: false,\n partiallyVisible: false,\n }))\n );\n }\n\n if (shownList.length > 0) {\n this.log('Received shown list change', shownList);\n\n shownList.forEach(({ start, end }) =>\n this.patchNodesInRange(start, end, () => ({\n visible: true,\n partiallyVisible: false,\n }))\n );\n }\n\n if (deselectedList.length > 0) {\n this.log('Received deselected list change', deselectedList);\n\n deselectedList.forEach(({ start, end }) =>\n this.patchNodesInRange(start, end, () => ({ selected: false }))\n );\n }\n\n if (selectedList.length > 0) {\n this.log('Received selected list change', selectedList);\n\n selectedList.forEach(({ start, end }) =>\n this.patchNodesInRange(start, end, () => ({ selected: true }))\n );\n }\n });\n\n stream.on('status', (s) => {\n if (s.code !== 0) {\n console.error(\n `Failed to subscribe to scene tree with code=${s.code}, details=${s.details}`\n );\n this.invalidateAfterOffset(0);\n }\n });\n\n stream.on('end', () => {\n this.invalidateAfterOffset(0);\n\n if (this.state.connection.type === 'connected') {\n this.startConnectionLostReconnectTimer();\n }\n });\n\n return stream;\n });\n }\n\n private async fetchUnloadedPagesInActiveRows(): Promise<void> {\n const [startPage, endPage] = this.getPageIndexesForRange(\n // Verify the first page is loaded properly even if the `activeRowRange`\n // has not been specified by the underlying table layout after a reconnect.\n this.activeRowRange[0] ?? 0,\n this.activeRowRange[1] ?? 0\n );\n\n const pages = this.getNonLoadedPageIndexes(startPage - 1, endPage + 1);\n await Promise.all(pages.map((page) => this.fetchPage(page)));\n }\n\n private patchNodesInRange(\n start: number,\n end: number,\n transform: (node: Node.AsObject) => Partial<Node.AsObject>\n ): void {\n const updatedRows = this.state.rows\n .slice(start, end + 1)\n .map((row) =>\n isLoadedRow(row)\n ? { ...row, node: { ...row.node, ...transform(row.node) } }\n : row\n );\n\n const startRows = this.state.rows.slice(0, start);\n const endRows = this.state.rows.slice(end + 1);\n const rows = [...startRows, ...updatedRows, ...endRows];\n\n this.updateState({ ...this.state, rows });\n }\n\n private async handlePageResult(page: Page): Promise<void> {\n try {\n const res = await page.res;\n\n const currentPage = this.getPage(page.index);\n\n // Only handle the result if the page has not been invalidated.\n if (currentPage?.id === page.id) {\n const cursor = res.getCursor();\n const itemsList = res.getItemsList();\n\n const totalRows = cursor?.getTotal() ?? 0;\n const offset = page.index * this.rowLimit;\n const fetchedRows = fromNodeProto(\n offset,\n itemsList,\n currentPage.metadataKeys\n );\n\n const start = this.state.rows.slice(0, offset);\n const end = this.state.rows.slice(\n start.length + fetchedRows.length,\n totalRows\n );\n const fill = new Array(\n Math.max(\n 0,\n totalRows - start.length - fetchedRows.length - end.length\n )\n );\n const rows = [...start, ...fetchedRows, ...end, ...fill];\n\n if (this.isViewLoading(rows) && this.loadingTimer == null) {\n this.restartLoadingTimer();\n\n this.updateState({\n ...this.state,\n totalRows: totalRows,\n rows: rows,\n shouldShowEmptyResults:\n this.state.filterTerm != null &&\n (rows.length === 0 || this.state.totalFilteredRows === 0),\n });\n } else {\n this.updateState({\n ...this.state,\n totalRows: totalRows,\n rows: rows,\n shouldShowLoading:\n rows.length === 0 && this.state.shouldShowLoading,\n shouldShowEmptyResults:\n this.state.filterTerm != null &&\n (rows.length === 0 || this.state.totalFilteredRows === 0),\n firstFetchComplete: true,\n });\n }\n }\n } catch (e) {\n const errorMessage = e instanceof Error ? e.toString() : 'Unknown';\n console.error(\n `Request error fetching page at index ${page.index} (${errorMessage})`\n );\n\n const currentPage = this.getPage(page.index);\n if (currentPage?.id === page.id) {\n this.invalidatePage(page.index);\n }\n }\n }\n\n private invalidatePage(index: number): void {\n if (this.isPageLoaded(index)) {\n this.pages.delete(index);\n }\n }\n\n private invalidateAfterOffset(offset: number): void {\n const pageIndex = Math.floor(offset / this.rowLimit);\n\n for (const index of this.pages.keys()) {\n if (index >= pageIndex) {\n this.invalidatePage(index);\n }\n }\n }\n\n private getState(): SceneTreeState {\n return this.state;\n }\n\n private isViewLoading(rows: Row[]): boolean {\n return (\n this.state.filterTerm == null &&\n rows[this.activeRowRange[0]] == null &&\n rows[this.activeRowRange[1]] == null\n );\n }\n\n private restartLoadingTimer(): void {\n if (this.loadingTimer != null) {\n this.clearLoadingTimer();\n }\n\n this.loadingTimer = window.setTimeout(() => {\n this.loadingTimer = undefined;\n this.updateState({\n ...this.getState(),\n shouldShowLoading: true,\n });\n }, this.connectOptions.spinnerDelay);\n }\n\n private clearLoadingTimer(): void {\n if (this.loadingTimer != null) {\n clearTimeout(this.loadingTimer);\n this.loadingTimer = undefined;\n }\n }\n\n private tryClearLoadingState(): void {\n const didClearLoadingTimer = this.tryClearLoadingTimer(this.state);\n\n if (didClearLoadingTimer) {\n this.updateState({ ...this.state, shouldShowLoading: false });\n }\n }\n\n private tryClearLoadingTimer(state: SceneTreeState): boolean {\n const loadingShowingOrTimerStarted =\n this.state.shouldShowLoading || this.loadingTimer != null;\n const updateLoadingTimer =\n loadingShowingOrTimerStarted && !this.isViewLoading(state.rows);\n if (updateLoadingTimer) {\n this.clearLoadingTimer();\n return true;\n }\n return false;\n }\n\n private updateState(newState: SceneTreeState): void {\n const didClearLoadingTimer = this.tryClearLoadingTimer(newState);\n\n this.state = {\n ...newState,\n shouldShowLoading: didClearLoadingTimer\n ? false\n : newState.shouldShowLoading,\n };\n\n this.onStateChange.emit(this.state);\n }\n\n public getPageForOffset(offset: number): number {\n const index = Math.floor(offset / this.rowLimit);\n return this.constrainPageIndex(index);\n }\n\n public getPageIndexesForRange(start: number, end: number): [number, number] {\n const pageStart = this.getPageForOffset(start);\n const pageEnd = this.getPageForOffset(end);\n return [pageStart, pageEnd];\n }\n\n private async fetchTree(\n offset: number,\n limit: number,\n jwt: string\n ): Promise<GetTreeResponse> {\n return this.requestUnary(jwt, (metadata, handler) => {\n const pager = new OffsetPager();\n pager.setOffset(offset);\n pager.setLimit(limit);\n\n const req = new GetTreeRequest();\n req.setPager(pager);\n req.setAdditionalColumnKeysList(this.metadataKeys);\n\n this.client.getTree(req, metadata, handler);\n });\n }\n\n private requestUnary<R>(\n jwt: string,\n req: (\n metadata: grpc.Metadata,\n handler: (err: ServiceError | null, res: R | null) => void\n ) => void\n ): Promise<R> {\n return new Promise((resolve, reject) => {\n const metadata = this.createJwtMetadata(jwt);\n\n req(metadata, (err, res) => {\n if (err != null) {\n reject(err);\n } else if (res != null) {\n resolve(res);\n } else {\n reject(\n new SceneTreeError(\n 'Invalid response. Both error and result are null'\n )\n );\n }\n });\n });\n }\n\n private requestServerStream<R>(\n jwt: string,\n req: (metadata: grpc.Metadata) => ResponseStream<R>\n ): ResponseStream<R> {\n const metadata = this.createJwtMetadata(jwt);\n return req(metadata);\n }\n\n private createJwtMetadata(jwt: string): grpc.Metadata {\n return new grpc.Metadata({\n 'jwt-context': JSON.stringify({ jwt }),\n });\n }\n\n private async ifConnectionHasJwt<T>(then: (jwt: string) => T): Promise<T> {\n const { connection } = this.state;\n if (connection.type === 'connecting' || connection.type === 'connected') {\n const jwt = await connection.jwtProvider();\n if (jwt != null) {\n return then(jwt);\n } else {\n throw new SceneTreeUnauthorizedError(\n 'SceneTreeController cannot perform request. Viewer JWT is undefined.'\n );\n }\n } else if (connection.type === 'cancelled') {\n throw new SceneTreeConnectionCancelledError(\n `Request attempted, but controller was cancelled`\n );\n } else {\n throw new SceneTreeError('SceneTreeController is not in connected state');\n }\n }\n\n private ifErrorIsFatal(error: unknown, then: VoidFunction): void {\n if (!(error instanceof SceneTreeConnectionCancelledError)) {\n then();\n }\n }\n\n private getConnectionError(\n e: ServiceError | Error | unknown\n ): SceneTreeErrorDetails {\n if (isGrpcServiceError(e)) {\n if (e.code === grpc.Code.FailedPrecondition) {\n return new SceneTreeErrorDetails(\n 'SCENE_TREE_DISABLED',\n SceneTreeErrorCode.SCENE_TREE_DISABLED\n );\n } else if (e.code === grpc.Code.Unauthenticated) {\n return new SceneTreeErrorDetails(\n 'UNAUTHORIZED',\n SceneTreeErrorCode.UNAUTHORIZED\n );\n } else if (e.code === grpc.Code.Aborted) {\n return new SceneTreeErrorDetails('ABORTED', SceneTreeErrorCode.ABORTED);\n } else {\n return new SceneTreeErrorDetails('UNKNOWN', SceneTreeErrorCode.UNKNOWN);\n }\n } else if (e instanceof SceneTreeUnauthorizedError) {\n return new SceneTreeErrorDetails(\n 'UNAUTHORIZED',\n SceneTreeErrorCode.UNAUTHORIZED\n );\n } else {\n return new SceneTreeErrorDetails('UNKNOWN', SceneTreeErrorCode.UNKNOWN);\n }\n }\n\n private constrainPageRange(start: number, end: number): [number, number] {\n return [Math.max(0, start), Math.min(this.maxPages - 1, end)];\n }\n\n private constrainPageIndex(index: number): number {\n return Math.max(0, Math.min(index, this.maxPages - 1));\n }\n\n private constrainRowOffsets(start: number, end: number): [number, number] {\n return [Math.max(0, start), Math.min(this.state.totalRows - 1, end)];\n }\n\n private get maxPages(): number {\n return Math.max(1, Math.ceil(this.state.totalRows / this.rowLimit));\n }\n\n private log(message?: string, ...optionalParams: unknown[]): void {\n if (this.debugLogs) {\n console.debug(message, optionalParams);\n }\n }\n\n private isConnectedState(\n connection: ConnectionState\n ): connection is ConnectedState {\n return connection.type === 'connected';\n }\n}\n"],"version":3}
1
+ {"file":"controller.js","mappings":";;;;;;;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACsC;AACtC,IAAI,IAAI,GAAGA,cAAI,CAAC;AAChB,IAAI,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC;AACvC;AACA,IAAI,CAAC,YAAY,CAAC,sCAAsC,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;AACxE,IAAI,CAAC,YAAY,CAAC,4CAA4C,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;AAC9E,IAAI,CAAC,YAAY,CAAC,2CAA2C,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;AAC7E,IAAI,CAAC,YAAY,CAAC,qCAAqC,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;AACvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,GAAG,SAAS,QAAQ,EAAE;AACzD,EAAEA,cAAI,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;AAC7D,CAAC,CAAC;AACF,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,EAAEA,cAAI,CAAC,OAAO,CAAC,CAAC;AACjE,IAAI,IAAI,CAAC,KAAK,IAAI,CAAC,QAAQ,EAAE;AAC7B,EAAE,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,GAAG,qCAAqC,CAAC;AAC1F,CAAC;AACD;AACA;AACA,IAAIA,cAAI,CAAC,OAAO,CAAC,kBAAkB,EAAE;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,QAAQ,GAAG,SAAS,mBAAmB,EAAE;AACvF,EAAE,OAAO,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,mBAAmB,EAAE,IAAI,CAAC,CAAC;AACjF,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,SAAS,eAAe,EAAE,GAAG,EAAE;AAC9E,MAAS,GAAG,GAAG;AACf,IAAI,KAAK,EAAEA,cAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;AACtD,IAAI,MAAM,EAAEA,cAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;AACxD,IAAI;AACJ;AACA,EAAE,IAAI,eAAe,EAAE;AACvB,IAAI,GAAG,CAAC,oBAAoB,GAAG,GAAG,CAAC;AACnC,GAAG;AACH,EAAE,OAAO,GAAG,CAAC;AACb,CAAC,CAAC;AACF,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,iBAAiB,GAAG,SAAS,KAAK,EAAE;AACxE,EAAE,IAAI,MAAM,GAAG,IAAIA,cAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;AAC5C,EAAE,IAAI,GAAG,GAAG,IAAI,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC;AACpD,EAAE,OAAO,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,2BAA2B,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;AACtF,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,2BAA2B,GAAG,SAAS,GAAG,EAAE,MAAM,EAAE;AACxF,EAAE,OAAO,MAAM,CAAC,SAAS,EAAE,EAAE;AAC7B,IAAI,IAAI,MAAM,CAAC,UAAU,EAAE,EAAE;AAC7B,MAAM,MAAM;AACZ,KAAK;AACL,IAAI,IAAI,KAAK,GAAG,MAAM,CAAC,cAAc,EAAE,CAAC;AACxC,IAAI,QAAQ,KAAK;AACjB,IAAI,KAAK,CAAC;AACV,MAAM,IAAI,KAAK,0BAA0B,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC;AAC9D,MAAM,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AAC1B,MAAM,MAAM;AACZ,IAAI,KAAK,CAAC;AACV,MAAM,IAAI,KAAK,0BAA0B,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC;AAC9D,MAAM,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;AAC3B,MAAM,MAAM;AACZ,IAAI;AACJ,MAAM,MAAM,CAAC,SAAS,EAAE,CAAC;AACzB,MAAM,MAAM;AACZ,KAAK;AACL,GAAG;AACH,EAAE,OAAO,GAAG,CAAC;AACb,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,eAAe,GAAG,WAAW;AAC3E,EAAE,IAAI,MAAM,GAAG,IAAIA,cAAI,CAAC,YAAY,EAAE,CAAC;AACvC,EAAE,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,uBAAuB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;AAC5E,EAAE,OAAO,MAAM,CAAC,eAAe,EAAE,CAAC;AAClC,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,uBAAuB,GAAG,SAAS,OAAO,EAAE,MAAM,EAAE;AACxF,EAAE,IAAI,CAAC,GAAG,SAAS,CAAC;AACpB,EAAE,CAAC,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;AACzB,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE;AACf,IAAI,MAAM,CAAC,WAAW;AACtB,MAAM,CAAC;AACP,MAAM,CAAC;AACP,KAAK,CAAC;AACN,GAAG;AACH,EAAE,CAAC,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;AAC1B,EAAE,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE;AACpB,IAAI,MAAM,CAAC,WAAW;AACtB,MAAM,CAAC;AACP,MAAM,CAAC;AACP,KAAK,CAAC;AACN,GAAG;AACH,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,QAAQ,GAAG,WAAW;AACpE,EAAE,8BAA8BA,cAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE;AAC9E,CAAC,CAAC;AACF;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,QAAQ,GAAG,SAAS,KAAK,EAAE;AACzE,EAAEA,cAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,IAAI,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;AACjD,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,SAAS,GAAG,WAAW;AACrE,EAAE,8BAA8BA,cAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE;AAC/E,CAAC,CAAC;AACF;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,SAAS,GAAG,SAAS,KAAK,EAAE;AAC1E,EAAEA,cAAI,CAAC,OAAO,CAAC,oBAAoB,CAAC,IAAI,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;AACpD,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,GAAG,SAAS,QAAQ,EAAE;AAC/D,EAAEA,cAAI,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;AAC/G,CAAC,CAAC;AACF,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,EAAEA,cAAI,CAAC,OAAO,CAAC,CAAC;AACvE,IAAI,IAAI,CAAC,KAAK,IAAI,CAAC,QAAQ,EAAE;AAC7B,EAAE,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,WAAW,GAAG,2CAA2C,CAAC;AACtG,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,YAAY,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACjE;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,SAAS,GAAG;AACtD,EAAE,aAAa,EAAE,CAAC;AAClB,EAAE,MAAM,EAAE,CAAC;AACX,EAAE,MAAM,EAAE,CAAC;AACX,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,YAAY,GAAG,WAAW;AAC9E,EAAE,0EAA0EA,cAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,EAAE;AAC5K,CAAC,CAAC;AACF;AACA;AACA;AACA,IAAIA,cAAI,CAAC,OAAO,CAAC,kBAAkB,EAAE;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,QAAQ,GAAG,SAAS,mBAAmB,EAAE;AAC7F,EAAE,OAAO,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,mBAAmB,EAAE,IAAI,CAAC,CAAC;AACvF,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,GAAG,SAAS,eAAe,EAAE,GAAG,EAAE;AACpF,MAAS,GAAG,GAAG;AACf,IAAI,KAAK,EAAEA,cAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;AACtD,IAAI,MAAM,EAAEA,cAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;AACxD,IAAI,MAAM,EAAEA,cAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;AACvD,IAAI;AACJ;AACA,EAAE,IAAI,eAAe,EAAE;AACvB,IAAI,GAAG,CAAC,oBAAoB,GAAG,GAAG,CAAC;AACnC,GAAG;AACH,EAAE,OAAO,GAAG,CAAC;AACb,CAAC,CAAC;AACF,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,iBAAiB,GAAG,SAAS,KAAK,EAAE;AAC9E,EAAE,IAAI,MAAM,GAAG,IAAIA,cAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;AAC5C,EAAE,IAAI,GAAG,GAAG,IAAI,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC;AAC1D,EAAE,OAAO,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,2BAA2B,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;AAC5F,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,2BAA2B,GAAG,SAAS,GAAG,EAAE,MAAM,EAAE;AAC9F,EAAE,OAAO,MAAM,CAAC,SAAS,EAAE,EAAE;AAC7B,IAAI,IAAI,MAAM,CAAC,UAAU,EAAE,EAAE;AAC7B,MAAM,MAAM;AACZ,KAAK;AACL,IAAI,IAAI,KAAK,GAAG,MAAM,CAAC,cAAc,EAAE,CAAC;AACxC,IAAI,QAAQ,KAAK;AACjB,IAAI,KAAK,CAAC;AACV,MAAM,IAAI,KAAK,0BAA0B,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC;AAC9D,MAAM,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AAC1B,MAAM,MAAM;AACZ,IAAI,KAAK,CAAC;AACV,MAAM,IAAI,KAAK,0BAA0B,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC;AAC9D,MAAM,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;AAC3B,MAAM,MAAM;AACZ,IAAI,KAAK,CAAC;AACV,MAAM,IAAI,KAAK,0BAA0B,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC;AAC9D,MAAM,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;AAC3B,MAAM,MAAM;AACZ,IAAI;AACJ,MAAM,MAAM,CAAC,SAAS,EAAE,CAAC;AACzB,MAAM,MAAM;AACZ,KAAK;AACL,GAAG;AACH,EAAE,OAAO,GAAG,CAAC;AACb,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,eAAe,GAAG,WAAW;AACjF,EAAE,IAAI,MAAM,GAAG,IAAIA,cAAI,CAAC,YAAY,EAAE,CAAC;AACvC,EAAE,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,uBAAuB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;AAClF,EAAE,OAAO,MAAM,CAAC,eAAe,EAAE,CAAC;AAClC,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,uBAAuB,GAAG,SAAS,OAAO,EAAE,MAAM,EAAE;AAC9F,EAAE,IAAI,CAAC,GAAG,SAAS,CAAC;AACpB,EAAE,CAAC,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;AACzB,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE;AACf,IAAI,MAAM,CAAC,WAAW;AACtB,MAAM,CAAC;AACP,MAAM,CAAC;AACP,KAAK,CAAC;AACN,GAAG;AACH,EAAE,CAAC,0BAA0BA,cAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC;AAChE,EAAE,IAAI,CAAC,IAAI,IAAI,EAAE;AACjB,IAAI,MAAM,CAAC,WAAW;AACtB,MAAM,CAAC;AACP,MAAM,CAAC;AACP,KAAK,CAAC;AACN,GAAG;AACH,EAAE,CAAC,0BAA0BA,cAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC;AAChE,EAAE,IAAI,CAAC,IAAI,IAAI,EAAE;AACjB,IAAI,MAAM,CAAC,WAAW;AACtB,MAAM,CAAC;AACP,MAAM,CAAC;AACP,KAAK,CAAC;AACN,GAAG;AACH,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,QAAQ,GAAG,WAAW;AAC1E,EAAE,8BAA8BA,cAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE;AAC9E,CAAC,CAAC;AACF;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,QAAQ,GAAG,SAAS,KAAK,EAAE;AAC/E,EAAEA,cAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,IAAI,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;AACjD,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,SAAS,GAAG,WAAW;AAC3E,EAAE,8BAA8BA,cAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE;AAC/E,CAAC,CAAC;AACF;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,SAAS,GAAG,SAAS,KAAK,EAAE;AAChF,EAAEA,cAAI,CAAC,OAAO,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;AACxG,CAAC,CAAC;AACF;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,WAAW,GAAG,WAAW;AAC7E,EAAEA,cAAI,CAAC,OAAO,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;AAC5G,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,SAAS,GAAG,WAAW;AAC3E,EAAE,OAAOA,cAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,IAAI,CAAC;AAChD,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,SAAS,GAAG,WAAW;AAC3E,EAAE,8BAA8BA,cAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE;AAC9E,CAAC,CAAC;AACF;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,SAAS,GAAG,SAAS,KAAK,EAAE;AAChF,EAAEA,cAAI,CAAC,OAAO,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;AACxG,CAAC,CAAC;AACF;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,WAAW,GAAG,WAAW;AAC7E,EAAEA,cAAI,CAAC,OAAO,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;AAC5G,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,SAAS,GAAG,WAAW;AAC3E,EAAE,OAAOA,cAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,IAAI,CAAC;AAChD,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,GAAG,SAAS,QAAQ,EAAE;AAC1D,EAAEA,cAAI,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;AAC7D,CAAC,CAAC;AACF,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAEA,cAAI,CAAC,OAAO,CAAC,CAAC;AAClE,IAAI,IAAI,CAAC,KAAK,IAAI,CAAC,QAAQ,EAAE;AAC7B,EAAE,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,GAAG,sCAAsC,CAAC;AAC5F,CAAC;AACD;AACA;AACA,IAAIA,cAAI,CAAC,OAAO,CAAC,kBAAkB,EAAE;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,QAAQ,GAAG,SAAS,mBAAmB,EAAE;AACxF,EAAE,OAAO,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,mBAAmB,EAAE,IAAI,CAAC,CAAC;AAClF,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,GAAG,SAAS,eAAe,EAAE,GAAG,EAAE;AAC/E,MAAS,GAAG,GAAG;AACf,IAAI,IAAI,EAAEA,cAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;AACtD,IAAI;AACJ;AACA,EAAE,IAAI,eAAe,EAAE;AACvB,IAAI,GAAG,CAAC,oBAAoB,GAAG,GAAG,CAAC;AACnC,GAAG;AACH,EAAE,OAAO,GAAG,CAAC;AACb,CAAC,CAAC;AACF,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,iBAAiB,GAAG,SAAS,KAAK,EAAE;AACzE,EAAE,IAAI,MAAM,GAAG,IAAIA,cAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;AAC5C,EAAE,IAAI,GAAG,GAAG,IAAI,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC;AACrD,EAAE,OAAO,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,2BAA2B,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;AACvF,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,2BAA2B,GAAG,SAAS,GAAG,EAAE,MAAM,EAAE;AACzF,EAAE,OAAO,MAAM,CAAC,SAAS,EAAE,EAAE;AAC7B,IAAI,IAAI,MAAM,CAAC,UAAU,EAAE,EAAE;AAC7B,MAAM,MAAM;AACZ,KAAK;AACL,IAAI,IAAI,KAAK,GAAG,MAAM,CAAC,cAAc,EAAE,CAAC;AACxC,IAAI,QAAQ,KAAK;AACjB,IAAI,KAAK,CAAC;AACV,MAAM,IAAI,KAAK,0BAA0B,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC;AAC9D,MAAM,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AACzB,MAAM,MAAM;AACZ,IAAI;AACJ,MAAM,MAAM,CAAC,SAAS,EAAE,CAAC;AACzB,MAAM,MAAM;AACZ,KAAK;AACL,GAAG;AACH,EAAE,OAAO,GAAG,CAAC;AACb,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,eAAe,GAAG,WAAW;AAC5E,EAAE,IAAI,MAAM,GAAG,IAAIA,cAAI,CAAC,YAAY,EAAE,CAAC;AACvC,EAAE,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,uBAAuB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;AAC7E,EAAE,OAAO,MAAM,CAAC,eAAe,EAAE,CAAC;AAClC,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,uBAAuB,GAAG,SAAS,OAAO,EAAE,MAAM,EAAE;AACzF,EAAE,IAAI,CAAC,GAAG,SAAS,CAAC;AACpB,EAAE,CAAC,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;AACxB,EAAE,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE;AACpB,IAAI,MAAM,CAAC,WAAW;AACtB,MAAM,CAAC;AACP,MAAM,CAAC;AACP,KAAK,CAAC;AACN,GAAG;AACH,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,OAAO,GAAG,WAAW;AACpE,EAAE,8BAA8BA,cAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE;AAC/E,CAAC,CAAC;AACF;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,OAAO,GAAG,SAAS,KAAK,EAAE;AACzE,EAAEA,cAAI,CAAC,OAAO,CAAC,oBAAoB,CAAC,IAAI,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;AACpD,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,YAAY,GAAG,SAAS,QAAQ,EAAE;AAChE,EAAEA,cAAI,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;AAC7D,CAAC,CAAC;AACF,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,YAAY,EAAEA,cAAI,CAAC,OAAO,CAAC,CAAC;AACxE,IAAI,IAAI,CAAC,KAAK,IAAI,CAAC,QAAQ,EAAE;AAC7B,EAAE,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,WAAW,GAAG,4CAA4C,CAAC;AACxG,CAAC;AACD;AACA;AACA,IAAIA,cAAI,CAAC,OAAO,CAAC,kBAAkB,EAAE;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,QAAQ,GAAG,SAAS,mBAAmB,EAAE;AAC9F,EAAE,OAAO,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,mBAAmB,EAAE,IAAI,CAAC,CAAC;AACxF,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,QAAQ,GAAG,SAAS,eAAe,EAAE,GAAG,EAAE;AACrF,MAAS,GAAG,GAAG;AACf,IAAI,KAAK,EAAEA,cAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;AACtD,IAAI,IAAI,EAAEA,cAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;AACtD,IAAI;AACJ;AACA,EAAE,IAAI,eAAe,EAAE;AACvB,IAAI,GAAG,CAAC,oBAAoB,GAAG,GAAG,CAAC;AACnC,GAAG;AACH,EAAE,OAAO,GAAG,CAAC;AACb,CAAC,CAAC;AACF,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,iBAAiB,GAAG,SAAS,KAAK,EAAE;AAC/E,EAAE,IAAI,MAAM,GAAG,IAAIA,cAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;AAC5C,EAAE,IAAI,GAAG,GAAG,IAAI,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC;AAC3D,EAAE,OAAO,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,2BAA2B,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;AAC7F,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,2BAA2B,GAAG,SAAS,GAAG,EAAE,MAAM,EAAE;AAC/F,EAAE,OAAO,MAAM,CAAC,SAAS,EAAE,EAAE;AAC7B,IAAI,IAAI,MAAM,CAAC,UAAU,EAAE,EAAE;AAC7B,MAAM,MAAM;AACZ,KAAK;AACL,IAAI,IAAI,KAAK,GAAG,MAAM,CAAC,cAAc,EAAE,CAAC;AACxC,IAAI,QAAQ,KAAK;AACjB,IAAI,KAAK,CAAC;AACV,MAAM,IAAI,KAAK,0BAA0B,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC;AAC9D,MAAM,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AAC1B,MAAM,MAAM;AACZ,IAAI,KAAK,CAAC;AACV,MAAM,IAAI,KAAK,0BAA0B,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC;AAC9D,MAAM,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AACzB,MAAM,MAAM;AACZ,IAAI;AACJ,MAAM,MAAM,CAAC,SAAS,EAAE,CAAC;AACzB,MAAM,MAAM;AACZ,KAAK;AACL,GAAG;AACH,EAAE,OAAO,GAAG,CAAC;AACb,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,eAAe,GAAG,WAAW;AAClF,EAAE,IAAI,MAAM,GAAG,IAAIA,cAAI,CAAC,YAAY,EAAE,CAAC;AACvC,EAAE,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,uBAAuB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;AACnF,EAAE,OAAO,MAAM,CAAC,eAAe,EAAE,CAAC;AAClC,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,uBAAuB,GAAG,SAAS,OAAO,EAAE,MAAM,EAAE;AAC/F,EAAE,IAAI,CAAC,GAAG,SAAS,CAAC;AACpB,EAAE,CAAC,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;AACzB,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE;AACf,IAAI,MAAM,CAAC,WAAW;AACtB,MAAM,CAAC;AACP,MAAM,CAAC;AACP,KAAK,CAAC;AACN,GAAG;AACH,EAAE,CAAC,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;AACxB,EAAE,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE;AACpB,IAAI,MAAM,CAAC,WAAW;AACtB,MAAM,CAAC;AACP,MAAM,CAAC;AACP,KAAK,CAAC;AACN,GAAG;AACH,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,QAAQ,GAAG,WAAW;AAC3E,EAAE,8BAA8BA,cAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE;AAC9E,CAAC,CAAC;AACF;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,QAAQ,GAAG,SAAS,KAAK,EAAE;AAChF,EAAEA,cAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,IAAI,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;AACjD,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,OAAO,GAAG,WAAW;AAC1E,EAAE,8BAA8BA,cAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE;AAC/E,CAAC,CAAC;AACF;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,OAAO,GAAG,SAAS,KAAK,EAAE;AAC/E,EAAEA,cAAI,CAAC,OAAO,CAAC,oBAAoB,CAAC,IAAI,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;AACpD,CAAC,CAAC;AACF;AACA;AACA,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC;;;;AC3uB1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACsC;AACtC,IAAI,IAAI,GAAGA,cAAI,CAAC;AAChB,IAAI,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC;AACvC;AACA,IAAI,CAAC,YAAY,CAAC,oCAAoC,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;AACtE,IAAI,CAAC,YAAY,CAAC,sCAAsC,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,GAAG,SAAS,QAAQ,EAAE;AACxD,EAAEA,cAAI,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;AAC7D,CAAC,CAAC;AACF,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAEA,cAAI,CAAC,OAAO,CAAC,CAAC;AAChE,IAAI,IAAI,CAAC,KAAK,IAAI,CAAC,QAAQ,EAAE;AAC7B,EAAE,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,GAAG,oCAAoC,CAAC;AACxF,CAAC;AACD;AACA;AACA,IAAIA,cAAI,CAAC,OAAO,CAAC,kBAAkB,EAAE;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,GAAG,SAAS,mBAAmB,EAAE;AACtF,EAAE,OAAO,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,mBAAmB,EAAE,IAAI,CAAC,CAAC;AAChF,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,GAAG,SAAS,eAAe,EAAE,GAAG,EAAE;AAC7E,MAAS,GAAG,GAAG;AACf,IAAI,GAAG,EAAEA,cAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;AACrD,IAAI;AACJ;AACA,EAAE,IAAI,eAAe,EAAE;AACvB,IAAI,GAAG,CAAC,oBAAoB,GAAG,GAAG,CAAC;AACnC,GAAG;AACH,EAAE,OAAO,GAAG,CAAC;AACb,CAAC,CAAC;AACF,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,GAAG,SAAS,KAAK,EAAE;AACvE,EAAE,IAAI,MAAM,GAAG,IAAIA,cAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;AAC5C,EAAE,IAAI,GAAG,GAAG,IAAI,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;AACnD,EAAE,OAAO,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,2BAA2B,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;AACrF,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,2BAA2B,GAAG,SAAS,GAAG,EAAE,MAAM,EAAE;AACvF,EAAE,OAAO,MAAM,CAAC,SAAS,EAAE,EAAE;AAC7B,IAAI,IAAI,MAAM,CAAC,UAAU,EAAE,EAAE;AAC7B,MAAM,MAAM;AACZ,KAAK;AACL,IAAI,IAAI,KAAK,GAAG,MAAM,CAAC,cAAc,EAAE,CAAC;AACxC,IAAI,QAAQ,KAAK;AACjB,IAAI,KAAK,CAAC;AACV,MAAM,IAAI,KAAK,0BAA0B,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC;AAC9D,MAAM,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AACxB,MAAM,MAAM;AACZ,IAAI;AACJ,MAAM,MAAM,CAAC,SAAS,EAAE,CAAC;AACzB,MAAM,MAAM;AACZ,KAAK;AACL,GAAG;AACH,EAAE,OAAO,GAAG,CAAC;AACb,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,eAAe,GAAG,WAAW;AAC1E,EAAE,IAAI,MAAM,GAAG,IAAIA,cAAI,CAAC,YAAY,EAAE,CAAC;AACvC,EAAE,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,uBAAuB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;AAC3E,EAAE,OAAO,MAAM,CAAC,eAAe,EAAE,CAAC;AAClC,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,uBAAuB,GAAG,SAAS,OAAO,EAAE,MAAM,EAAE;AACvF,EAAE,IAAI,CAAC,GAAG,SAAS,CAAC;AACpB,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;AACvB,EAAE,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE;AACpB,IAAI,MAAM,CAAC,WAAW;AACtB,MAAM,CAAC;AACP,MAAM,CAAC;AACP,KAAK,CAAC;AACN,GAAG;AACH,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,WAAW;AACjE,EAAE,8BAA8BA,cAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE;AAC/E,CAAC,CAAC;AACF;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,SAAS,KAAK,EAAE;AACtE,EAAEA,cAAI,CAAC,OAAO,CAAC,oBAAoB,CAAC,IAAI,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;AACpD,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,GAAG,SAAS,QAAQ,EAAE;AAC1D,EAAEA,cAAI,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;AAC7D,CAAC,CAAC;AACF,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAEA,cAAI,CAAC,OAAO,CAAC,CAAC;AAClE,IAAI,IAAI,CAAC,KAAK,IAAI,CAAC,QAAQ,EAAE;AAC7B,EAAE,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,GAAG,sCAAsC,CAAC;AAC5F,CAAC;AACD;AACA;AACA,IAAIA,cAAI,CAAC,OAAO,CAAC,kBAAkB,EAAE;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,QAAQ,GAAG,SAAS,mBAAmB,EAAE;AACxF,EAAE,OAAO,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,mBAAmB,EAAE,IAAI,CAAC,CAAC;AAClF,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,GAAG,SAAS,eAAe,EAAE,GAAG,EAAE;AAC/E,MAAS,GAAG,GAAG;AACf,IAAI,GAAG,EAAEA,cAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC,GAAG,EAAE,CAAC,EAAE,GAAG,CAAC;AACtD,IAAI,GAAG,EAAEA,cAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC,GAAG,EAAE,CAAC,EAAE,GAAG,CAAC;AACtD,IAAI;AACJ;AACA,EAAE,IAAI,eAAe,EAAE;AACvB,IAAI,GAAG,CAAC,oBAAoB,GAAG,GAAG,CAAC;AACnC,GAAG;AACH,EAAE,OAAO,GAAG,CAAC;AACb,CAAC,CAAC;AACF,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,iBAAiB,GAAG,SAAS,KAAK,EAAE;AACzE,EAAE,IAAI,MAAM,GAAG,IAAIA,cAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;AAC5C,EAAE,IAAI,GAAG,GAAG,IAAI,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC;AACrD,EAAE,OAAO,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,2BAA2B,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;AACvF,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,2BAA2B,GAAG,SAAS,GAAG,EAAE,MAAM,EAAE;AACzF,EAAE,OAAO,MAAM,CAAC,SAAS,EAAE,EAAE;AAC7B,IAAI,IAAI,MAAM,CAAC,UAAU,EAAE,EAAE;AAC7B,MAAM,MAAM;AACZ,KAAK;AACL,IAAI,IAAI,KAAK,GAAG,MAAM,CAAC,cAAc,EAAE,CAAC;AACxC,IAAI,QAAQ,KAAK;AACjB,IAAI,KAAK,CAAC;AACV,MAAM,IAAI,KAAK,0BAA0B,MAAM,CAAC,kBAAkB,EAAE,CAAC,CAAC;AACtE,MAAM,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AACxB,MAAM,MAAM;AACZ,IAAI,KAAK,CAAC;AACV,MAAM,IAAI,KAAK,0BAA0B,MAAM,CAAC,kBAAkB,EAAE,CAAC,CAAC;AACtE,MAAM,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AACxB,MAAM,MAAM;AACZ,IAAI;AACJ,MAAM,MAAM,CAAC,SAAS,EAAE,CAAC;AACzB,MAAM,MAAM;AACZ,KAAK;AACL,GAAG;AACH,EAAE,OAAO,GAAG,CAAC;AACb,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,eAAe,GAAG,WAAW;AAC5E,EAAE,IAAI,MAAM,GAAG,IAAIA,cAAI,CAAC,YAAY,EAAE,CAAC;AACvC,EAAE,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,uBAAuB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;AAC7E,EAAE,OAAO,MAAM,CAAC,eAAe,EAAE,CAAC;AAClC,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,uBAAuB,GAAG,SAAS,OAAO,EAAE,MAAM,EAAE;AACzF,EAAE,IAAI,CAAC,GAAG,SAAS,CAAC;AACpB,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;AACvB,EAAE,IAAI,QAAQ,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE;AAC7B,IAAI,MAAM,CAAC,mBAAmB;AAC9B,MAAM,CAAC;AACP,MAAM,CAAC;AACP,KAAK,CAAC;AACN,GAAG;AACH,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;AACvB,EAAE,IAAI,QAAQ,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE;AAC7B,IAAI,MAAM,CAAC,mBAAmB;AAC9B,MAAM,CAAC;AACP,MAAM,CAAC;AACP,KAAK,CAAC;AACN,GAAG;AACH,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,GAAG,WAAW;AACnE,EAAE,8BAA8BA,cAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC,IAAI,EAAE,CAAC,EAAE,GAAG,CAAC,EAAE;AAChF,CAAC,CAAC;AACF;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,GAAG,SAAS,KAAK,EAAE;AACxE,EAAEA,cAAI,CAAC,OAAO,CAAC,uBAAuB,CAAC,IAAI,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;AACvD,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,GAAG,WAAW;AACnE,EAAE,8BAA8BA,cAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC,IAAI,EAAE,CAAC,EAAE,GAAG,CAAC,EAAE;AAChF,CAAC,CAAC;AACF;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,GAAG,SAAS,KAAK,EAAE;AACxE,EAAEA,cAAI,CAAC,OAAO,CAAC,uBAAuB,CAAC,IAAI,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;AACvD,CAAC,CAAC;AACF;AACA;AACA,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC;;;;ACtU1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACsC;AACtC,IAAI,IAAI,GAAGA,cAAI,CAAC;AAChB,IAAI,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC;AACvC;AACkE;AAC0B;AAC5F,IAAI,CAAC,YAAY,CAAC,uDAAuD,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;AACzF,IAAI,CAAC,YAAY,CAAC,0DAA0D,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;AAC5F,IAAI,CAAC,YAAY,CAAC,uDAAuD,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;AACzF,IAAI,CAAC,YAAY,CAAC,wDAAwD,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;AAC1F,IAAI,CAAC,YAAY,CAAC,kDAAkD,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;AACpF,IAAI,CAAC,YAAY,CAAC,mDAAmD,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;AACrF,IAAI,CAAC,YAAY,CAAC,yDAAyD,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;AAC3F,IAAI,CAAC,YAAY,CAAC,4DAA4D,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;AAC9F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,GAAG,SAAS,QAAQ,EAAE;AACtE,EAAEA,cAAI,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,eAAe,EAAE,IAAI,CAAC,CAAC;AACzH,CAAC,CAAC;AACF,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,EAAEA,cAAI,CAAC,OAAO,CAAC,CAAC;AAC9E,IAAI,IAAI,CAAC,KAAK,IAAI,CAAC,QAAQ,EAAE;AAC7B,EAAE,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,GAAG,kDAAkD,CAAC;AACpH,CAAC;AACD;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,eAAe,GAAG,CAAC,EAAE,CAAC,CAAC;AACxE;AACA;AACA;AACA,IAAIA,cAAI,CAAC,OAAO,CAAC,kBAAkB,EAAE;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,GAAG,SAAS,mBAAmB,EAAE;AACpG,EAAE,OAAO,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,mBAAmB,EAAE,IAAI,CAAC,CAAC;AAC9F,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,GAAG,SAAS,eAAe,EAAE,GAAG,EAAE;AAC3F,EAAE,IAAI,CAAC,EAAE,GAAG,GAAG;AACf,IAAI,EAAE,EAAE,CAAC,CAAC,GAAG,GAAG,CAAC,KAAK,EAAE,KAAKC,OAAmB,CAAC,IAAI,CAAC,QAAQ,CAAC,eAAe,EAAE,CAAC,CAAC;AAClF,IAAI,KAAK,EAAED,cAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;AACtD,IAAI,IAAI,EAAEA,cAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;AACtD,IAAI,OAAO,EAAEA,cAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC,GAAG,EAAE,CAAC,EAAE,KAAK,CAAC;AAC5D,IAAI,QAAQ,EAAEA,cAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC,GAAG,EAAE,CAAC,EAAE,KAAK,CAAC;AAC7D,IAAI,QAAQ,EAAEA,cAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC,GAAG,EAAE,CAAC,EAAE,KAAK,CAAC;AAC7D,IAAI,MAAM,EAAEA,cAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC,GAAG,EAAE,CAAC,EAAE,KAAK,CAAC;AAC3D,IAAI,UAAU,EAAE,CAAC,CAAC,GAAG,GAAG,CAAC,aAAa,EAAE,KAAKE,WAA2B,CAAC,WAAW,CAAC,QAAQ,CAAC,eAAe,EAAE,CAAC,CAAC;AACjH,IAAI,gBAAgB,EAAEF,cAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC,GAAG,EAAE,CAAC,EAAE,KAAK,CAAC;AACrE,IAAI,WAAW,EAAEA,cAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,GAAG,EAAE,EAAE,CAAC;AACvD,IAAI,SAAS,EAAEA,cAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC,GAAG,EAAE,EAAE,EAAE,KAAK,CAAC;AAC/D,IAAI,OAAO,EAAEA,cAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC,GAAG,EAAE,EAAE,EAAE,KAAK,CAAC;AAC7D,IAAI,OAAO,EAAEA,cAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC,GAAG,EAAE,EAAE,EAAE,KAAK,CAAC;AAC7D,GAAG,CAAC;AACJ;AACA,EAAE,IAAI,eAAe,EAAE;AACvB,IAAI,GAAG,CAAC,oBAAoB,GAAG,GAAG,CAAC;AACnC,GAAG;AACH,EAAE,OAAO,GAAG,CAAC;AACb,CAAC,CAAC;AACF,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,iBAAiB,GAAG,SAAS,KAAK,EAAE;AACrF,EAAE,IAAI,MAAM,GAAG,IAAIA,cAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;AAC5C,EAAE,IAAI,GAAG,GAAG,IAAI,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC;AACjE,EAAE,OAAO,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,2BAA2B,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;AACnG,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,2BAA2B,GAAG,SAAS,GAAG,EAAE,MAAM,EAAE;AACrG,EAAE,OAAO,MAAM,CAAC,SAAS,EAAE,EAAE;AAC7B,IAAI,IAAI,MAAM,CAAC,UAAU,EAAE,EAAE;AAC7B,MAAM,MAAM;AACZ,KAAK;AACL,IAAI,IAAI,KAAK,GAAG,MAAM,CAAC,cAAc,EAAE,CAAC;AACxC,IAAI,QAAQ,KAAK;AACjB,IAAI,KAAK,CAAC;AACV,MAAM,IAAI,KAAK,GAAG,IAAIC,OAAmB,CAAC,IAAI,CAAC;AAC/C,MAAM,MAAM,CAAC,WAAW,CAAC,KAAK,CAACA,OAAmB,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;AACrF,MAAM,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;AACvB,MAAM,MAAM;AACZ,IAAI,KAAK,CAAC;AACV,MAAM,IAAI,KAAK,0BAA0B,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC;AAC9D,MAAM,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AAC1B,MAAM,MAAM;AACZ,IAAI,KAAK,CAAC;AACV,MAAM,IAAI,KAAK,0BAA0B,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC;AAC9D,MAAM,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AACzB,MAAM,MAAM;AACZ,IAAI,KAAK,CAAC;AACV,MAAM,IAAI,KAAK,2BAA2B,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;AAC7D,MAAM,GAAG,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;AAC5B,MAAM,MAAM;AACZ,IAAI,KAAK,CAAC;AACV,MAAM,IAAI,KAAK,2BAA2B,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;AAC7D,MAAM,GAAG,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;AAC7B,MAAM,MAAM;AACZ,IAAI,KAAK,CAAC;AACV,MAAM,IAAI,KAAK,2BAA2B,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;AAC7D,MAAM,GAAG,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;AAC7B,MAAM,MAAM;AACZ,IAAI,KAAK,CAAC;AACV,MAAM,IAAI,KAAK,2BAA2B,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;AAC7D,MAAM,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;AAC3B,MAAM,MAAM;AACZ,IAAI,KAAK,CAAC;AACV,MAAM,IAAI,KAAK,GAAG,IAAIC,WAA2B,CAAC,WAAW,CAAC;AAC9D,MAAM,MAAM,CAAC,WAAW,CAAC,KAAK,CAACA,WAA2B,CAAC,WAAW,CAAC,2BAA2B,CAAC,CAAC;AACpG,MAAM,GAAG,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;AAC/B,MAAM,MAAM;AACZ,IAAI,KAAK,CAAC;AACV,MAAM,IAAI,KAAK,2BAA2B,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;AAC7D,MAAM,GAAG,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC;AACrC,MAAM,MAAM;AACZ,IAAI,KAAK,EAAE;AACX,MAAM,IAAI,KAAK,0BAA0B,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC;AAC9D,MAAM,GAAG,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;AAC5B,MAAM,MAAM;AACZ,IAAI,KAAK,EAAE;AACX,MAAM,IAAI,KAAK,2BAA2B,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;AAC7D,MAAM,GAAG,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;AAC9B,MAAM,MAAM;AACZ,IAAI,KAAK,EAAE;AACX,MAAM,IAAI,KAAK,2BAA2B,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;AAC7D,MAAM,GAAG,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;AAC5B,MAAM,MAAM;AACZ,IAAI,KAAK,EAAE;AACX,MAAM,IAAI,KAAK,2BAA2B,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;AAC7D,MAAM,GAAG,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;AAC5B,MAAM,MAAM;AACZ,IAAI;AACJ,MAAM,MAAM,CAAC,SAAS,EAAE,CAAC;AACzB,MAAM,MAAM;AACZ,KAAK;AACL,GAAG;AACH,EAAE,OAAO,GAAG,CAAC;AACb,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,eAAe,GAAG,WAAW;AACxF,EAAE,IAAI,MAAM,GAAG,IAAIF,cAAI,CAAC,YAAY,EAAE,CAAC;AACvC,EAAE,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,uBAAuB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;AACzF,EAAE,OAAO,MAAM,CAAC,eAAe,EAAE,CAAC;AAClC,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,uBAAuB,GAAG,SAAS,OAAO,EAAE,MAAM,EAAE;AACrG,EAAE,IAAI,CAAC,GAAG,SAAS,CAAC;AACpB,EAAE,CAAC,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC;AACtB,EAAE,IAAI,CAAC,IAAI,IAAI,EAAE;AACjB,IAAI,MAAM,CAAC,YAAY;AACvB,MAAM,CAAC;AACP,MAAM,CAAC;AACP,MAAMC,OAAmB,CAAC,IAAI,CAAC,uBAAuB;AACtD,KAAK,CAAC;AACN,GAAG;AACH,EAAE,CAAC,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;AACzB,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE;AACf,IAAI,MAAM,CAAC,WAAW;AACtB,MAAM,CAAC;AACP,MAAM,CAAC;AACP,KAAK,CAAC;AACN,GAAG;AACH,EAAE,CAAC,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;AACxB,EAAE,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE;AACpB,IAAI,MAAM,CAAC,WAAW;AACtB,MAAM,CAAC;AACP,MAAM,CAAC;AACP,KAAK,CAAC;AACN,GAAG;AACH,EAAE,CAAC,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;AAC3B,EAAE,IAAI,CAAC,EAAE;AACT,IAAI,MAAM,CAAC,SAAS;AACpB,MAAM,CAAC;AACP,MAAM,CAAC;AACP,KAAK,CAAC;AACN,GAAG;AACH,EAAE,CAAC,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;AAC5B,EAAE,IAAI,CAAC,EAAE;AACT,IAAI,MAAM,CAAC,SAAS;AACpB,MAAM,CAAC;AACP,MAAM,CAAC;AACP,KAAK,CAAC;AACN,GAAG;AACH,EAAE,CAAC,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;AAC5B,EAAE,IAAI,CAAC,EAAE;AACT,IAAI,MAAM,CAAC,SAAS;AACpB,MAAM,CAAC;AACP,MAAM,CAAC;AACP,KAAK,CAAC;AACN,GAAG;AACH,EAAE,CAAC,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;AAC1B,EAAE,IAAI,CAAC,EAAE;AACT,IAAI,MAAM,CAAC,SAAS;AACpB,MAAM,CAAC;AACP,MAAM,CAAC;AACP,KAAK,CAAC;AACN,GAAG;AACH,EAAE,CAAC,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;AAC9B,EAAE,IAAI,CAAC,IAAI,IAAI,EAAE;AACjB,IAAI,MAAM,CAAC,YAAY;AACvB,MAAM,CAAC;AACP,MAAM,CAAC;AACP,MAAMC,WAA2B,CAAC,WAAW,CAAC,uBAAuB;AACrE,KAAK,CAAC;AACN,GAAG;AACH,EAAE,CAAC,GAAG,OAAO,CAAC,mBAAmB,EAAE,CAAC;AACpC,EAAE,IAAI,CAAC,EAAE;AACT,IAAI,MAAM,CAAC,SAAS;AACpB,MAAM,CAAC;AACP,MAAM,CAAC;AACP,KAAK,CAAC;AACN,GAAG;AACH,EAAE,CAAC,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;AAC/B,EAAE,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE;AACpB,IAAI,MAAM,CAAC,mBAAmB;AAC9B,MAAM,EAAE;AACR,MAAM,CAAC;AACP,KAAK,CAAC;AACN,GAAG;AACH,EAAE,CAAC,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;AAC7B,EAAE,IAAI,CAAC,EAAE;AACT,IAAI,MAAM,CAAC,SAAS;AACpB,MAAM,EAAE;AACR,MAAM,CAAC;AACP,KAAK,CAAC;AACN,GAAG;AACH,EAAE,CAAC,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;AAC3B,EAAE,IAAI,CAAC,EAAE;AACT,IAAI,MAAM,CAAC,SAAS;AACpB,MAAM,EAAE;AACR,MAAM,CAAC;AACP,KAAK,CAAC;AACN,GAAG;AACH,EAAE,CAAC,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;AAC3B,EAAE,IAAI,CAAC,EAAE;AACT,IAAI,MAAM,CAAC,SAAS;AACpB,MAAM,EAAE;AACR,MAAM,CAAC;AACP,KAAK,CAAC;AACN,GAAG;AACH,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,GAAG,WAAW;AAC9E,EAAE;AACF,IAAIF,cAAI,CAAC,OAAO,CAAC,eAAe,CAAC,IAAI,EAAEC,OAAmB,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE;AACrE,CAAC,CAAC;AACF;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,GAAG,SAAS,KAAK,EAAE;AACnF,EAAED,cAAI,CAAC,OAAO,CAAC,eAAe,CAAC,IAAI,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;AAC/C,CAAC,CAAC;AACF;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,GAAG,WAAW;AAChF,EAAE,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;AACxB,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,GAAG,WAAW;AAC9E,EAAE,OAAOA,cAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,IAAI,CAAC;AAChD,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,GAAG,WAAW;AACjF,EAAE,8BAA8BA,cAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE;AAC9E,CAAC,CAAC;AACF;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,GAAG,SAAS,KAAK,EAAE;AACtF,EAAEA,cAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,IAAI,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;AACjD,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,GAAG,WAAW;AAChF,EAAE,8BAA8BA,cAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE;AAC/E,CAAC,CAAC;AACF;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,GAAG,SAAS,KAAK,EAAE;AACrF,EAAEA,cAAI,CAAC,OAAO,CAAC,oBAAoB,CAAC,IAAI,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;AACpD,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,GAAG,WAAW;AACnF,EAAE,+BAA+BA,cAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC,IAAI,EAAE,CAAC,EAAE,KAAK,CAAC,EAAE;AACnF,CAAC,CAAC;AACF;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,GAAG,SAAS,KAAK,EAAE;AACxF,EAAEA,cAAI,CAAC,OAAO,CAAC,qBAAqB,CAAC,IAAI,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;AACrD,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,WAAW,GAAG,WAAW;AACpF,EAAE,+BAA+BA,cAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC,IAAI,EAAE,CAAC,EAAE,KAAK,CAAC,EAAE;AACnF,CAAC,CAAC;AACF;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,WAAW,GAAG,SAAS,KAAK,EAAE;AACzF,EAAEA,cAAI,CAAC,OAAO,CAAC,qBAAqB,CAAC,IAAI,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;AACrD,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,WAAW,GAAG,WAAW;AACpF,EAAE,+BAA+BA,cAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC,IAAI,EAAE,CAAC,EAAE,KAAK,CAAC,EAAE;AACnF,CAAC,CAAC;AACF;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,WAAW,GAAG,SAAS,KAAK,EAAE;AACzF,EAAEA,cAAI,CAAC,OAAO,CAAC,qBAAqB,CAAC,IAAI,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;AACrD,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,GAAG,WAAW;AAClF,EAAE,+BAA+BA,cAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC,IAAI,EAAE,CAAC,EAAE,KAAK,CAAC,EAAE;AACnF,CAAC,CAAC;AACF;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,GAAG,SAAS,KAAK,EAAE;AACvF,EAAEA,cAAI,CAAC,OAAO,CAAC,qBAAqB,CAAC,IAAI,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;AACrD,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,aAAa,GAAG,WAAW;AACtF,EAAE;AACF,IAAIA,cAAI,CAAC,OAAO,CAAC,eAAe,CAAC,IAAI,EAAEE,WAA2B,CAAC,WAAW,EAAE,CAAC,CAAC,EAAE;AACpF,CAAC,CAAC;AACF;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,aAAa,GAAG,SAAS,KAAK,EAAE;AAC3F,EAAEF,cAAI,CAAC,OAAO,CAAC,eAAe,CAAC,IAAI,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;AAC/C,CAAC,CAAC;AACF;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,eAAe,GAAG,WAAW;AACxF,EAAE,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;AAChC,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,aAAa,GAAG,WAAW;AACtF,EAAE,OAAOA,cAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,IAAI,CAAC;AAChD,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,mBAAmB,GAAG,WAAW;AAC5F,EAAE,+BAA+BA,cAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC,IAAI,EAAE,CAAC,EAAE,KAAK,CAAC,EAAE;AACnF,CAAC,CAAC;AACF;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,mBAAmB,GAAG,SAAS,KAAK,EAAE;AACjG,EAAEA,cAAI,CAAC,OAAO,CAAC,qBAAqB,CAAC,IAAI,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;AACrD,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,cAAc,GAAG,WAAW;AACvF,EAAE,sCAAsCA,cAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE;AACjF,CAAC,CAAC;AACF;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,cAAc,GAAG,SAAS,KAAK,EAAE;AAC5F,EAAEA,cAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,EAAE,EAAE,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC;AAC/C,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,GAAG,SAAS,KAAK,EAAE,SAAS,EAAE;AACnG,EAAEA,cAAI,CAAC,OAAO,CAAC,kBAAkB,CAAC,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC;AAC9D,CAAC,CAAC;AACF;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,gBAAgB,GAAG,WAAW;AACzF,EAAE,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC;AAC1B,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,YAAY,GAAG,WAAW;AACrF,EAAE,+BAA+BA,cAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC,IAAI,EAAE,EAAE,EAAE,KAAK,CAAC,EAAE;AACpF,CAAC,CAAC;AACF;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,YAAY,GAAG,SAAS,KAAK,EAAE;AAC1F,EAAEA,cAAI,CAAC,OAAO,CAAC,qBAAqB,CAAC,IAAI,EAAE,EAAE,EAAE,KAAK,CAAC,CAAC;AACtD,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,GAAG,WAAW;AACnF,EAAE,+BAA+BA,cAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC,IAAI,EAAE,EAAE,EAAE,KAAK,CAAC,EAAE;AACpF,CAAC,CAAC;AACF;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,GAAG,SAAS,KAAK,EAAE;AACxF,EAAEA,cAAI,CAAC,OAAO,CAAC,qBAAqB,CAAC,IAAI,EAAE,EAAE,EAAE,KAAK,CAAC,CAAC;AACtD,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,GAAG,WAAW;AACnF,EAAE,+BAA+BA,cAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC,IAAI,EAAE,EAAE,EAAE,KAAK,CAAC,EAAE;AACpF,CAAC,CAAC;AACF;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,GAAG,SAAS,KAAK,EAAE;AACxF,EAAEA,cAAI,CAAC,OAAO,CAAC,qBAAqB,CAAC,IAAI,EAAE,EAAE,EAAE,KAAK,CAAC,CAAC;AACtD,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,UAAU,GAAG,SAAS,QAAQ,EAAE;AAC5E,EAAEA,cAAI,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;AAC7D,CAAC,CAAC;AACF,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,UAAU,EAAEA,cAAI,CAAC,OAAO,CAAC,CAAC;AACpF,IAAI,IAAI,CAAC,KAAK,IAAI,CAAC,QAAQ,EAAE;AAC7B,EAAE,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,UAAU,CAAC,WAAW,GAAG,wDAAwD,CAAC;AAChI,CAAC;AACD;AACA;AACA,IAAIA,cAAI,CAAC,OAAO,CAAC,kBAAkB,EAAE;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,UAAU,CAAC,SAAS,CAAC,QAAQ,GAAG,SAAS,mBAAmB,EAAE;AAC1G,EAAE,OAAO,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,UAAU,CAAC,QAAQ,CAAC,mBAAmB,EAAE,IAAI,CAAC,CAAC;AACpG,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,UAAU,CAAC,QAAQ,GAAG,SAAS,eAAe,EAAE,GAAG,EAAE;AACjG,MAAS,GAAG,GAAG;AACf,IAAI,KAAK,EAAEA,cAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;AACtD,IAAI;AACJ;AACA,EAAE,IAAI,eAAe,EAAE;AACvB,IAAI,GAAG,CAAC,oBAAoB,GAAG,GAAG,CAAC;AACnC,GAAG;AACH,EAAE,OAAO,GAAG,CAAC;AACb,CAAC,CAAC;AACF,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,UAAU,CAAC,iBAAiB,GAAG,SAAS,KAAK,EAAE;AAC3F,EAAE,IAAI,MAAM,GAAG,IAAIA,cAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;AAC5C,EAAE,IAAI,GAAG,GAAG,IAAI,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,UAAU,CAAC;AACvE,EAAE,OAAO,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,UAAU,CAAC,2BAA2B,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;AACzG,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,UAAU,CAAC,2BAA2B,GAAG,SAAS,GAAG,EAAE,MAAM,EAAE;AAC3G,EAAE,OAAO,MAAM,CAAC,SAAS,EAAE,EAAE;AAC7B,IAAI,IAAI,MAAM,CAAC,UAAU,EAAE,EAAE;AAC7B,MAAM,MAAM;AACZ,KAAK;AACL,IAAI,IAAI,KAAK,GAAG,MAAM,CAAC,cAAc,EAAE,CAAC;AACxC,IAAI,QAAQ,KAAK;AACjB,IAAI,KAAK,CAAC;AACV,MAAM,IAAI,KAAK,0BAA0B,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC;AAC7D,MAAM,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AAC1B,MAAM,MAAM;AACZ,IAAI;AACJ,MAAM,MAAM,CAAC,SAAS,EAAE,CAAC;AACzB,MAAM,MAAM;AACZ,KAAK;AACL,GAAG;AACH,EAAE,OAAO,GAAG,CAAC;AACb,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,UAAU,CAAC,SAAS,CAAC,eAAe,GAAG,WAAW;AAC9F,EAAE,IAAI,MAAM,GAAG,IAAIA,cAAI,CAAC,YAAY,EAAE,CAAC;AACvC,EAAE,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,UAAU,CAAC,uBAAuB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;AAC/F,EAAE,OAAO,MAAM,CAAC,eAAe,EAAE,CAAC;AAClC,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,UAAU,CAAC,uBAAuB,GAAG,SAAS,OAAO,EAAE,MAAM,EAAE;AAC3G,EAAE,IAAI,CAAC,GAAG,SAAS,CAAC;AACpB,EAAE,CAAC,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;AACzB,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE;AACf,IAAI,MAAM,CAAC,UAAU;AACrB,MAAM,CAAC;AACP,MAAM,CAAC;AACP,KAAK,CAAC;AACN,GAAG;AACH,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,UAAU,CAAC,SAAS,CAAC,QAAQ,GAAG,WAAW;AACvF,EAAE,8BAA8BA,cAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE;AAC9E,CAAC,CAAC;AACF;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,UAAU,CAAC,SAAS,CAAC,QAAQ,GAAG,SAAS,KAAK,EAAE;AAC5F,EAAEA,cAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,IAAI,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;AACjD,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,KAAK,GAAG,SAAS,QAAQ,EAAE;AACvE,EAAEA,cAAI,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;AAC7D,CAAC,CAAC;AACF,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,KAAK,EAAEA,cAAI,CAAC,OAAO,CAAC,CAAC;AAC/E,IAAI,IAAI,CAAC,KAAK,IAAI,CAAC,QAAQ,EAAE;AAC7B,EAAE,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,WAAW,GAAG,mDAAmD,CAAC;AACtH,CAAC;AACD;AACA;AACA,IAAIA,cAAI,CAAC,OAAO,CAAC,kBAAkB,EAAE;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC,QAAQ,GAAG,SAAS,mBAAmB,EAAE;AACrG,EAAE,OAAO,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,mBAAmB,EAAE,IAAI,CAAC,CAAC;AAC/F,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,QAAQ,GAAG,SAAS,eAAe,EAAE,GAAG,EAAE;AAC5F,MAAS,GAAG,GAAG;AACf,IAAI,KAAK,EAAEA,cAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;AACtD,IAAI,GAAG,EAAEA,cAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;AACpD,IAAI;AACJ;AACA,EAAE,IAAI,eAAe,EAAE;AACvB,IAAI,GAAG,CAAC,oBAAoB,GAAG,GAAG,CAAC;AACnC,GAAG;AACH,EAAE,OAAO,GAAG,CAAC;AACb,CAAC,CAAC;AACF,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,iBAAiB,GAAG,SAAS,KAAK,EAAE;AACtF,EAAE,IAAI,MAAM,GAAG,IAAIA,cAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;AAC5C,EAAE,IAAI,GAAG,GAAG,IAAI,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC;AAClE,EAAE,OAAO,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,2BAA2B,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;AACpG,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,2BAA2B,GAAG,SAAS,GAAG,EAAE,MAAM,EAAE;AACtG,EAAE,OAAO,MAAM,CAAC,SAAS,EAAE,EAAE;AAC7B,IAAI,IAAI,MAAM,CAAC,UAAU,EAAE,EAAE;AAC7B,MAAM,MAAM;AACZ,KAAK;AACL,IAAI,IAAI,KAAK,GAAG,MAAM,CAAC,cAAc,EAAE,CAAC;AACxC,IAAI,QAAQ,KAAK;AACjB,IAAI,KAAK,CAAC;AACV,MAAM,IAAI,KAAK,0BAA0B,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC;AAC7D,MAAM,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AAC1B,MAAM,MAAM;AACZ,IAAI,KAAK,CAAC;AACV,MAAM,IAAI,KAAK,0BAA0B,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC;AAC7D,MAAM,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AACxB,MAAM,MAAM;AACZ,IAAI;AACJ,MAAM,MAAM,CAAC,SAAS,EAAE,CAAC;AACzB,MAAM,MAAM;AACZ,KAAK;AACL,GAAG;AACH,EAAE,OAAO,GAAG,CAAC;AACb,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC,eAAe,GAAG,WAAW;AACzF,EAAE,IAAI,MAAM,GAAG,IAAIA,cAAI,CAAC,YAAY,EAAE,CAAC;AACvC,EAAE,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,uBAAuB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;AAC1F,EAAE,OAAO,MAAM,CAAC,eAAe,EAAE,CAAC;AAClC,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,uBAAuB,GAAG,SAAS,OAAO,EAAE,MAAM,EAAE;AACtG,EAAE,IAAI,CAAC,GAAG,SAAS,CAAC;AACpB,EAAE,CAAC,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;AACzB,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE;AACf,IAAI,MAAM,CAAC,UAAU;AACrB,MAAM,CAAC;AACP,MAAM,CAAC;AACP,KAAK,CAAC;AACN,GAAG;AACH,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;AACvB,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE;AACf,IAAI,MAAM,CAAC,UAAU;AACrB,MAAM,CAAC;AACP,MAAM,CAAC;AACP,KAAK,CAAC;AACN,GAAG;AACH,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC,QAAQ,GAAG,WAAW;AAClF,EAAE,8BAA8BA,cAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE;AAC9E,CAAC,CAAC;AACF;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC,QAAQ,GAAG,SAAS,KAAK,EAAE;AACvF,EAAEA,cAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,IAAI,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;AACjD,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,GAAG,WAAW;AAChF,EAAE,8BAA8BA,cAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE;AAC9E,CAAC,CAAC;AACF;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,GAAG,SAAS,KAAK,EAAE;AACrF,EAAEA,cAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,IAAI,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;AACjD,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,WAAW,GAAG,SAAS,QAAQ,EAAE;AAC7E,EAAEA,cAAI,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,WAAW,CAAC,eAAe,EAAE,IAAI,CAAC,CAAC;AAChI,CAAC,CAAC;AACF,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,WAAW,EAAEA,cAAI,CAAC,OAAO,CAAC,CAAC;AACrF,IAAI,IAAI,CAAC,KAAK,IAAI,CAAC,QAAQ,EAAE;AAC7B,EAAE,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,WAAW,CAAC,WAAW,GAAG,yDAAyD,CAAC;AAClI,CAAC;AACD;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,WAAW,CAAC,eAAe,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACtF;AACA;AACA;AACA,IAAIA,cAAI,CAAC,OAAO,CAAC,kBAAkB,EAAE;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,WAAW,CAAC,SAAS,CAAC,QAAQ,GAAG,SAAS,mBAAmB,EAAE;AAC3G,EAAE,OAAO,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,WAAW,CAAC,QAAQ,CAAC,mBAAmB,EAAE,IAAI,CAAC,CAAC;AACrG,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,WAAW,CAAC,QAAQ,GAAG,SAAS,eAAe,EAAE,GAAG,EAAE;AAClG,MAAS,GAAG,GAAG;AACf,IAAI,UAAU,EAAEA,cAAI,CAAC,OAAO,CAAC,YAAY,CAAC,GAAG,CAAC,aAAa,EAAE;AAC7D,IAAI,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,QAAQ,EAAE,eAAe,CAAC;AAChF,IAAI,SAAS,EAAEA,cAAI,CAAC,OAAO,CAAC,YAAY,CAAC,GAAG,CAAC,YAAY,EAAE;AAC3D,IAAI,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,QAAQ,EAAE,eAAe,CAAC;AAChF,IAAI,YAAY,EAAEA,cAAI,CAAC,OAAO,CAAC,YAAY,CAAC,GAAG,CAAC,eAAe,EAAE;AACjE,IAAI,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,QAAQ,EAAE,eAAe,CAAC;AAChF,IAAI,cAAc,EAAEA,cAAI,CAAC,OAAO,CAAC,YAAY,CAAC,GAAG,CAAC,iBAAiB,EAAE;AACrE,IAAI,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,QAAQ,EAAE,eAAe,CAAC;AAChF,IAAI,oBAAoB,EAAEA,cAAI,CAAC,OAAO,CAAC,YAAY,CAAC,GAAG,CAAC,uBAAuB,EAAE;AACjF,IAAI,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,QAAQ,EAAE,eAAe,CAAC;AAChF,IAAI;AACJ;AACA,EAAE,IAAI,eAAe,EAAE;AACvB,IAAI,GAAG,CAAC,oBAAoB,GAAG,GAAG,CAAC;AACnC,GAAG;AACH,EAAE,OAAO,GAAG,CAAC;AACb,CAAC,CAAC;AACF,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,WAAW,CAAC,iBAAiB,GAAG,SAAS,KAAK,EAAE;AAC5F,EAAE,IAAI,MAAM,GAAG,IAAIA,cAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;AAC5C,EAAE,IAAI,GAAG,GAAG,IAAI,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,WAAW,CAAC;AACxE,EAAE,OAAO,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,WAAW,CAAC,2BAA2B,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;AAC1G,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,WAAW,CAAC,2BAA2B,GAAG,SAAS,GAAG,EAAE,MAAM,EAAE;AAC5G,EAAE,OAAO,MAAM,CAAC,SAAS,EAAE,EAAE;AAC7B,IAAI,IAAI,MAAM,CAAC,UAAU,EAAE,EAAE;AAC7B,MAAM,MAAM;AACZ,KAAK;AACL,IAAI,IAAI,KAAK,GAAG,MAAM,CAAC,cAAc,EAAE,CAAC;AACxC,IAAI,QAAQ,KAAK;AACjB,IAAI,KAAK,CAAC;AACV,MAAM,IAAI,KAAK,GAAG,IAAI,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC;AACxE,MAAM,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,2BAA2B,CAAC,CAAC;AAC9G,MAAM,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;AAC3B,MAAM,MAAM;AACZ,IAAI,KAAK,CAAC;AACV,MAAM,IAAI,KAAK,GAAG,IAAI,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC;AACxE,MAAM,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,2BAA2B,CAAC,CAAC;AAC9G,MAAM,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AAC1B,MAAM,MAAM;AACZ,IAAI,KAAK,CAAC;AACV,MAAM,IAAI,KAAK,GAAG,IAAI,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC;AACxE,MAAM,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,2BAA2B,CAAC,CAAC;AAC9G,MAAM,GAAG,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;AAC7B,MAAM,MAAM;AACZ,IAAI,KAAK,CAAC;AACV,MAAM,IAAI,KAAK,GAAG,IAAI,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC;AACxE,MAAM,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,2BAA2B,CAAC,CAAC;AAC9G,MAAM,GAAG,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;AAC/B,MAAM,MAAM;AACZ,IAAI,KAAK,CAAC;AACV,MAAM,IAAI,KAAK,GAAG,IAAI,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC;AACxE,MAAM,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,2BAA2B,CAAC,CAAC;AAC9G,MAAM,GAAG,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC;AACrC,MAAM,MAAM;AACZ,IAAI;AACJ,MAAM,MAAM,CAAC,SAAS,EAAE,CAAC;AACzB,MAAM,MAAM;AACZ,KAAK;AACL,GAAG;AACH,EAAE,OAAO,GAAG,CAAC;AACb,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,WAAW,CAAC,SAAS,CAAC,eAAe,GAAG,WAAW;AAC/F,EAAE,IAAI,MAAM,GAAG,IAAIA,cAAI,CAAC,YAAY,EAAE,CAAC;AACvC,EAAE,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,WAAW,CAAC,uBAAuB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;AAChG,EAAE,OAAO,MAAM,CAAC,eAAe,EAAE,CAAC;AAClC,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,WAAW,CAAC,uBAAuB,GAAG,SAAS,OAAO,EAAE,MAAM,EAAE;AAC5G,EAAE,IAAI,CAAC,GAAG,SAAS,CAAC;AACpB,EAAE,CAAC,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;AAC9B,EAAE,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE;AACpB,IAAI,MAAM,CAAC,oBAAoB;AAC/B,MAAM,CAAC;AACP,MAAM,CAAC;AACP,MAAM,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,uBAAuB;AAC/E,KAAK,CAAC;AACN,GAAG;AACH,EAAE,CAAC,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;AAC7B,EAAE,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE;AACpB,IAAI,MAAM,CAAC,oBAAoB;AAC/B,MAAM,CAAC;AACP,MAAM,CAAC;AACP,MAAM,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,uBAAuB;AAC/E,KAAK,CAAC;AACN,GAAG;AACH,EAAE,CAAC,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC;AAChC,EAAE,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE;AACpB,IAAI,MAAM,CAAC,oBAAoB;AAC/B,MAAM,CAAC;AACP,MAAM,CAAC;AACP,MAAM,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,uBAAuB;AAC/E,KAAK,CAAC;AACN,GAAG;AACH,EAAE,CAAC,GAAG,OAAO,CAAC,iBAAiB,EAAE,CAAC;AAClC,EAAE,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE;AACpB,IAAI,MAAM,CAAC,oBAAoB;AAC/B,MAAM,CAAC;AACP,MAAM,CAAC;AACP,MAAM,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,uBAAuB;AAC/E,KAAK,CAAC;AACN,GAAG;AACH,EAAE,CAAC,GAAG,OAAO,CAAC,uBAAuB,EAAE,CAAC;AACxC,EAAE,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE;AACpB,IAAI,MAAM,CAAC,oBAAoB;AAC/B,MAAM,CAAC;AACP,MAAM,CAAC;AACP,MAAM,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,uBAAuB;AAC/E,KAAK,CAAC;AACN,GAAG;AACH,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,WAAW,CAAC,SAAS,CAAC,aAAa,GAAG,WAAW;AAC7F,EAAE;AACF,IAAIA,cAAI,CAAC,OAAO,CAAC,uBAAuB,CAAC,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE;AACtG,CAAC,CAAC;AACF;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,WAAW,CAAC,SAAS,CAAC,aAAa,GAAG,SAAS,KAAK,EAAE;AAClG,EAAEA,cAAI,CAAC,OAAO,CAAC,uBAAuB,CAAC,IAAI,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;AACvD,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,WAAW,CAAC,SAAS,CAAC,SAAS,GAAG,SAAS,SAAS,EAAE,SAAS,EAAE;AAC7G,EAAE,OAAOA,cAAI,CAAC,OAAO,CAAC,yBAAyB,CAAC,IAAI,EAAE,CAAC,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;AAClI,CAAC,CAAC;AACF;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,WAAW,CAAC,SAAS,CAAC,eAAe,GAAG,WAAW;AAC/F,EAAE,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;AACzB,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,WAAW,CAAC,SAAS,CAAC,YAAY,GAAG,WAAW;AAC5F,EAAE;AACF,IAAIA,cAAI,CAAC,OAAO,CAAC,uBAAuB,CAAC,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE;AACtG,CAAC,CAAC;AACF;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,WAAW,CAAC,SAAS,CAAC,YAAY,GAAG,SAAS,KAAK,EAAE;AACjG,EAAEA,cAAI,CAAC,OAAO,CAAC,uBAAuB,CAAC,IAAI,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;AACvD,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,WAAW,CAAC,SAAS,CAAC,QAAQ,GAAG,SAAS,SAAS,EAAE,SAAS,EAAE;AAC5G,EAAE,OAAOA,cAAI,CAAC,OAAO,CAAC,yBAAyB,CAAC,IAAI,EAAE,CAAC,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;AAClI,CAAC,CAAC;AACF;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,WAAW,CAAC,SAAS,CAAC,cAAc,GAAG,WAAW;AAC9F,EAAE,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;AACxB,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,WAAW,CAAC,SAAS,CAAC,eAAe,GAAG,WAAW;AAC/F,EAAE;AACF,IAAIA,cAAI,CAAC,OAAO,CAAC,uBAAuB,CAAC,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE;AACtG,CAAC,CAAC;AACF;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,WAAW,CAAC,SAAS,CAAC,eAAe,GAAG,SAAS,KAAK,EAAE;AACpG,EAAEA,cAAI,CAAC,OAAO,CAAC,uBAAuB,CAAC,IAAI,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;AACvD,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,WAAW,CAAC,SAAS,CAAC,WAAW,GAAG,SAAS,SAAS,EAAE,SAAS,EAAE;AAC/G,EAAE,OAAOA,cAAI,CAAC,OAAO,CAAC,yBAAyB,CAAC,IAAI,EAAE,CAAC,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;AAClI,CAAC,CAAC;AACF;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,WAAW,CAAC,SAAS,CAAC,iBAAiB,GAAG,WAAW;AACjG,EAAE,IAAI,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC;AAC3B,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,WAAW,CAAC,SAAS,CAAC,iBAAiB,GAAG,WAAW;AACjG,EAAE;AACF,IAAIA,cAAI,CAAC,OAAO,CAAC,uBAAuB,CAAC,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE;AACtG,CAAC,CAAC;AACF;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,WAAW,CAAC,SAAS,CAAC,iBAAiB,GAAG,SAAS,KAAK,EAAE;AACtG,EAAEA,cAAI,CAAC,OAAO,CAAC,uBAAuB,CAAC,IAAI,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;AACvD,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,WAAW,CAAC,SAAS,CAAC,aAAa,GAAG,SAAS,SAAS,EAAE,SAAS,EAAE;AACjH,EAAE,OAAOA,cAAI,CAAC,OAAO,CAAC,yBAAyB,CAAC,IAAI,EAAE,CAAC,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;AAClI,CAAC,CAAC;AACF;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,WAAW,CAAC,SAAS,CAAC,mBAAmB,GAAG,WAAW;AACnG,EAAE,IAAI,CAAC,iBAAiB,CAAC,EAAE,CAAC,CAAC;AAC7B,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,WAAW,CAAC,SAAS,CAAC,uBAAuB,GAAG,WAAW;AACvG,EAAE;AACF,IAAIA,cAAI,CAAC,OAAO,CAAC,uBAAuB,CAAC,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE;AACtG,CAAC,CAAC;AACF;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,WAAW,CAAC,SAAS,CAAC,uBAAuB,GAAG,SAAS,KAAK,EAAE;AAC5G,EAAEA,cAAI,CAAC,OAAO,CAAC,uBAAuB,CAAC,IAAI,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;AACvD,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,WAAW,CAAC,SAAS,CAAC,mBAAmB,GAAG,SAAS,SAAS,EAAE,SAAS,EAAE;AACvH,EAAE,OAAOA,cAAI,CAAC,OAAO,CAAC,yBAAyB,CAAC,IAAI,EAAE,CAAC,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;AAClI,CAAC,CAAC;AACF;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,WAAW,CAAC,SAAS,CAAC,yBAAyB,GAAG,WAAW;AACzG,EAAE,IAAI,CAAC,uBAAuB,CAAC,EAAE,CAAC,CAAC;AACnC,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,GAAG,SAAS,QAAQ,EAAE;AAC3E,EAAEA,cAAI,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;AAC7D,CAAC,CAAC;AACF,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,EAAEA,cAAI,CAAC,OAAO,CAAC,CAAC;AACnF,IAAI,IAAI,CAAC,KAAK,IAAI,CAAC,QAAQ,EAAE;AAC7B,EAAE,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,WAAW,GAAG,uDAAuD,CAAC;AAC9H,CAAC;AACD;AACA;AACA,IAAIA,cAAI,CAAC,OAAO,CAAC,kBAAkB,EAAE;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,SAAS,CAAC,QAAQ,GAAG,SAAS,mBAAmB,EAAE;AACzG,EAAE,OAAO,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,mBAAmB,EAAE,IAAI,CAAC,CAAC;AACnG,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,GAAG,SAAS,eAAe,EAAE,GAAG,EAAE;AAChG,MAAS,GAAG,GAAG;AACf;AACA,IAAI;AACJ;AACA,EAAE,IAAI,eAAe,EAAE;AACvB,IAAI,GAAG,CAAC,oBAAoB,GAAG,GAAG,CAAC;AACnC,GAAG;AACH,EAAE,OAAO,GAAG,CAAC;AACb,CAAC,CAAC;AACF,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,iBAAiB,GAAG,SAAS,KAAK,EAAE;AAC1F,EAAE,IAAI,MAAM,GAAG,IAAIA,cAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;AAC5C,EAAE,IAAI,GAAG,GAAG,IAAI,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC;AACtE,EAAE,OAAO,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,2BAA2B,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;AACxG,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,2BAA2B,GAAG,SAAS,GAAG,EAAE,MAAM,EAAE;AAC1G,EAAE,OAAO,MAAM,CAAC,SAAS,EAAE,EAAE;AAC7B,IAAI,IAAI,MAAM,CAAC,UAAU,EAAE,EAAE;AAC7B,MAAM,MAAM;AACZ,KAAK;AACL,IAAI,IAAI,KAAK,GAAG,MAAM,CAAC,cAAc,EAAE,CAAC;AACxC,IAAI,QAAQ,KAAK;AACjB,IAAI;AACJ,MAAM,MAAM,CAAC,SAAS,EAAE,CAAC;AACzB,MAAM,MAAM;AACZ,KAAK;AACL,GAAG;AACH,EAAE,OAAO,GAAG,CAAC;AACb,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,SAAS,CAAC,eAAe,GAAG,WAAW;AAC7F,EAAE,IAAI,MAAM,GAAG,IAAIA,cAAI,CAAC,YAAY,EAAE,CAAC;AACvC,EAAE,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,uBAAuB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;AAC9F,EAAE,OAAO,MAAM,CAAC,eAAe,EAAE,CAAC;AAClC,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,uBAAuB,GAAG,SAAS,OAAO,EAAE,MAAM,EAAE;AAE1G,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,YAAY,GAAG,SAAS,QAAQ,EAAE;AAC9E,EAAEA,cAAI,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;AAC7D,CAAC,CAAC;AACF,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,YAAY,EAAEA,cAAI,CAAC,OAAO,CAAC,CAAC;AACtF,IAAI,IAAI,CAAC,KAAK,IAAI,CAAC,QAAQ,EAAE;AAC7B,EAAE,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,YAAY,CAAC,WAAW,GAAG,0DAA0D,CAAC;AACpI,CAAC;AACD;AACA;AACA,IAAIA,cAAI,CAAC,OAAO,CAAC,kBAAkB,EAAE;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,YAAY,CAAC,SAAS,CAAC,QAAQ,GAAG,SAAS,mBAAmB,EAAE;AAC5G,EAAE,OAAO,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,YAAY,CAAC,QAAQ,CAAC,mBAAmB,EAAE,IAAI,CAAC,CAAC;AACtG,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,YAAY,CAAC,QAAQ,GAAG,SAAS,eAAe,EAAE,GAAG,EAAE;AACnG,MAAS,GAAG,GAAG;AACf,IAAI,eAAe,EAAEA,cAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;AAChE,IAAI;AACJ;AACA,EAAE,IAAI,eAAe,EAAE;AACvB,IAAI,GAAG,CAAC,oBAAoB,GAAG,GAAG,CAAC;AACnC,GAAG;AACH,EAAE,OAAO,GAAG,CAAC;AACb,CAAC,CAAC;AACF,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,YAAY,CAAC,iBAAiB,GAAG,SAAS,KAAK,EAAE;AAC7F,EAAE,IAAI,MAAM,GAAG,IAAIA,cAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;AAC5C,EAAE,IAAI,GAAG,GAAG,IAAI,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,YAAY,CAAC;AACzE,EAAE,OAAO,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,YAAY,CAAC,2BAA2B,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;AAC3G,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,YAAY,CAAC,2BAA2B,GAAG,SAAS,GAAG,EAAE,MAAM,EAAE;AAC7G,EAAE,OAAO,MAAM,CAAC,SAAS,EAAE,EAAE;AAC7B,IAAI,IAAI,MAAM,CAAC,UAAU,EAAE,EAAE;AAC7B,MAAM,MAAM;AACZ,KAAK;AACL,IAAI,IAAI,KAAK,GAAG,MAAM,CAAC,cAAc,EAAE,CAAC;AACxC,IAAI,QAAQ,KAAK;AACjB,IAAI,KAAK,CAAC;AACV,MAAM,IAAI,KAAK,0BAA0B,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC;AAC7D,MAAM,GAAG,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;AACpC,MAAM,MAAM;AACZ,IAAI;AACJ,MAAM,MAAM,CAAC,SAAS,EAAE,CAAC;AACzB,MAAM,MAAM;AACZ,KAAK;AACL,GAAG;AACH,EAAE,OAAO,GAAG,CAAC;AACb,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,YAAY,CAAC,SAAS,CAAC,eAAe,GAAG,WAAW;AAChG,EAAE,IAAI,MAAM,GAAG,IAAIA,cAAI,CAAC,YAAY,EAAE,CAAC;AACvC,EAAE,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,YAAY,CAAC,uBAAuB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;AACjG,EAAE,OAAO,MAAM,CAAC,eAAe,EAAE,CAAC;AAClC,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,YAAY,CAAC,uBAAuB,GAAG,SAAS,OAAO,EAAE,MAAM,EAAE;AAC7G,EAAE,IAAI,CAAC,GAAG,SAAS,CAAC;AACpB,EAAE,CAAC,GAAG,OAAO,CAAC,kBAAkB,EAAE,CAAC;AACnC,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE;AACf,IAAI,MAAM,CAAC,UAAU;AACrB,MAAM,CAAC;AACP,MAAM,CAAC;AACP,KAAK,CAAC;AACN,GAAG;AACH,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,YAAY,CAAC,SAAS,CAAC,kBAAkB,GAAG,WAAW;AACnG,EAAE,8BAA8BA,cAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE;AAC9E,CAAC,CAAC;AACF;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,YAAY,CAAC,SAAS,CAAC,kBAAkB,GAAG,SAAS,KAAK,EAAE;AACxG,EAAEA,cAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,IAAI,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;AACjD,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,cAAc,GAAG,SAAS,QAAQ,EAAE;AAChF,EAAEA,cAAI,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC;AAChI,CAAC,CAAC;AACF,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,cAAc,EAAEA,cAAI,CAAC,OAAO,CAAC,CAAC;AACxF,IAAI,IAAI,CAAC,KAAK,IAAI,CAAC,QAAQ,EAAE;AAC7B,EAAE,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,cAAc,CAAC,WAAW,GAAG,4DAA4D,CAAC;AACxI,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,cAAc,CAAC,YAAY,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACtF;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,cAAc,CAAC,eAAe,GAAG;AAC7E,EAAE,oBAAoB,EAAE,CAAC;AACzB,EAAE,WAAW,EAAE,CAAC;AAChB,EAAE,MAAM,EAAE,CAAC;AACX,EAAE,UAAU,EAAE,CAAC;AACf,EAAE,aAAa,EAAE,CAAC;AAClB,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,cAAc,CAAC,SAAS,CAAC,kBAAkB,GAAG,WAAW;AACrG,EAAE,iGAAiGA,cAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,EAAE;AACpN,CAAC,CAAC;AACF;AACA;AACA;AACA,IAAIA,cAAI,CAAC,OAAO,CAAC,kBAAkB,EAAE;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,cAAc,CAAC,SAAS,CAAC,QAAQ,GAAG,SAAS,mBAAmB,EAAE;AAC9G,EAAE,OAAO,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,cAAc,CAAC,QAAQ,CAAC,mBAAmB,EAAE,IAAI,CAAC,CAAC;AACxG,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,cAAc,CAAC,QAAQ,GAAG,SAAS,eAAe,EAAE,GAAG,EAAE;AACrG,EAAE,IAAI,CAAC,EAAE,GAAG,GAAG;AACf,IAAI,UAAU,EAAE,CAAC,CAAC,GAAG,GAAG,CAAC,aAAa,EAAE,KAAK,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,UAAU,CAAC,QAAQ,CAAC,eAAe,EAAE,CAAC,CAAC;AAChI,IAAI,MAAM,EAAE,CAAC,CAAC,GAAG,GAAG,CAAC,SAAS,EAAE,KAAK,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,WAAW,CAAC,QAAQ,CAAC,eAAe,EAAE,CAAC,CAAC;AACzH,IAAI,SAAS,EAAE,CAAC,CAAC,GAAG,GAAG,CAAC,YAAY,EAAE,KAAK,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,eAAe,EAAE,CAAC,CAAC;AAC7H,IAAI,YAAY,EAAE,CAAC,CAAC,GAAG,GAAG,CAAC,eAAe,EAAE,KAAK,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,YAAY,CAAC,QAAQ,CAAC,eAAe,EAAE,CAAC,CAAC;AACtI,GAAG,CAAC;AACJ;AACA,EAAE,IAAI,eAAe,EAAE;AACvB,IAAI,GAAG,CAAC,oBAAoB,GAAG,GAAG,CAAC;AACnC,GAAG;AACH,EAAE,OAAO,GAAG,CAAC;AACb,CAAC,CAAC;AACF,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,cAAc,CAAC,iBAAiB,GAAG,SAAS,KAAK,EAAE;AAC/F,EAAE,IAAI,MAAM,GAAG,IAAIA,cAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;AAC5C,EAAE,IAAI,GAAG,GAAG,IAAI,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,cAAc,CAAC;AAC3E,EAAE,OAAO,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,cAAc,CAAC,2BAA2B,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;AAC7G,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,cAAc,CAAC,2BAA2B,GAAG,SAAS,GAAG,EAAE,MAAM,EAAE;AAC/G,EAAE,OAAO,MAAM,CAAC,SAAS,EAAE,EAAE;AAC7B,IAAI,IAAI,MAAM,CAAC,UAAU,EAAE,EAAE;AAC7B,MAAM,MAAM;AACZ,KAAK;AACL,IAAI,IAAI,KAAK,GAAG,MAAM,CAAC,cAAc,EAAE,CAAC;AACxC,IAAI,QAAQ,KAAK;AACjB,IAAI,KAAK,CAAC;AACV,MAAM,IAAI,KAAK,GAAG,IAAI,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,UAAU,CAAC;AAC7E,MAAM,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,UAAU,CAAC,2BAA2B,CAAC,CAAC;AACnH,MAAM,GAAG,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;AAC/B,MAAM,MAAM;AACZ,IAAI,KAAK,CAAC;AACV,MAAM,IAAI,KAAK,GAAG,IAAI,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,WAAW,CAAC;AAC9E,MAAM,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,WAAW,CAAC,2BAA2B,CAAC,CAAC;AACpH,MAAM,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;AAC3B,MAAM,MAAM;AACZ,IAAI,KAAK,CAAC;AACV,MAAM,IAAI,KAAK,GAAG,IAAI,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC;AAC5E,MAAM,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,2BAA2B,CAAC,CAAC;AAClH,MAAM,GAAG,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;AAC9B,MAAM,MAAM;AACZ,IAAI,KAAK,CAAC;AACV,MAAM,IAAI,KAAK,GAAG,IAAI,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,YAAY,CAAC;AAC/E,MAAM,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,YAAY,CAAC,2BAA2B,CAAC,CAAC;AACrH,MAAM,GAAG,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;AACjC,MAAM,MAAM;AACZ,IAAI;AACJ,MAAM,MAAM,CAAC,SAAS,EAAE,CAAC;AACzB,MAAM,MAAM;AACZ,KAAK;AACL,GAAG;AACH,EAAE,OAAO,GAAG,CAAC;AACb,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,cAAc,CAAC,SAAS,CAAC,eAAe,GAAG,WAAW;AAClG,EAAE,IAAI,MAAM,GAAG,IAAIA,cAAI,CAAC,YAAY,EAAE,CAAC;AACvC,EAAE,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,cAAc,CAAC,uBAAuB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;AACnG,EAAE,OAAO,MAAM,CAAC,eAAe,EAAE,CAAC;AAClC,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,cAAc,CAAC,uBAAuB,GAAG,SAAS,OAAO,EAAE,MAAM,EAAE;AAC/G,EAAE,IAAI,CAAC,GAAG,SAAS,CAAC;AACpB,EAAE,CAAC,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;AAC9B,EAAE,IAAI,CAAC,IAAI,IAAI,EAAE;AACjB,IAAI,MAAM,CAAC,YAAY;AACvB,MAAM,CAAC;AACP,MAAM,CAAC;AACP,MAAM,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,UAAU,CAAC,uBAAuB;AACpF,KAAK,CAAC;AACN,GAAG;AACH,EAAE,CAAC,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;AAC1B,EAAE,IAAI,CAAC,IAAI,IAAI,EAAE;AACjB,IAAI,MAAM,CAAC,YAAY;AACvB,MAAM,CAAC;AACP,MAAM,CAAC;AACP,MAAM,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,WAAW,CAAC,uBAAuB;AACrF,KAAK,CAAC;AACN,GAAG;AACH,EAAE,CAAC,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;AAC7B,EAAE,IAAI,CAAC,IAAI,IAAI,EAAE;AACjB,IAAI,MAAM,CAAC,YAAY;AACvB,MAAM,CAAC;AACP,MAAM,CAAC;AACP,MAAM,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,uBAAuB;AACnF,KAAK,CAAC;AACN,GAAG;AACH,EAAE,CAAC,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC;AAChC,EAAE,IAAI,CAAC,IAAI,IAAI,EAAE;AACjB,IAAI,MAAM,CAAC,YAAY;AACvB,MAAM,CAAC;AACP,MAAM,CAAC;AACP,MAAM,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,YAAY,CAAC,uBAAuB;AACtF,KAAK,CAAC;AACN,GAAG;AACH,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,cAAc,CAAC,SAAS,CAAC,aAAa,GAAG,WAAW;AAChG,EAAE;AACF,IAAIA,cAAI,CAAC,OAAO,CAAC,eAAe,CAAC,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAC,EAAE;AACnG,CAAC,CAAC;AACF;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,cAAc,CAAC,SAAS,CAAC,aAAa,GAAG,SAAS,KAAK,EAAE;AACrG,EAAEA,cAAI,CAAC,OAAO,CAAC,oBAAoB,CAAC,IAAI,EAAE,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;AAChI,CAAC,CAAC;AACF;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,cAAc,CAAC,SAAS,CAAC,eAAe,GAAG,WAAW;AAClG,EAAE,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;AAChC,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,cAAc,CAAC,SAAS,CAAC,aAAa,GAAG,WAAW;AAChG,EAAE,OAAOA,cAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,IAAI,CAAC;AAChD,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,cAAc,CAAC,SAAS,CAAC,SAAS,GAAG,WAAW;AAC5F,EAAE;AACF,IAAIA,cAAI,CAAC,OAAO,CAAC,eAAe,CAAC,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,CAAC,EAAE;AACpG,CAAC,CAAC;AACF;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,cAAc,CAAC,SAAS,CAAC,SAAS,GAAG,SAAS,KAAK,EAAE;AACjG,EAAEA,cAAI,CAAC,OAAO,CAAC,oBAAoB,CAAC,IAAI,EAAE,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;AAChI,CAAC,CAAC;AACF;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,cAAc,CAAC,SAAS,CAAC,WAAW,GAAG,WAAW;AAC9F,EAAE,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;AAC5B,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,cAAc,CAAC,SAAS,CAAC,SAAS,GAAG,WAAW;AAC5F,EAAE,OAAOA,cAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,IAAI,CAAC;AAChD,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,cAAc,CAAC,SAAS,CAAC,YAAY,GAAG,WAAW;AAC/F,EAAE;AACF,IAAIA,cAAI,CAAC,OAAO,CAAC,eAAe,CAAC,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,EAAE,CAAC,CAAC,EAAE;AAClG,CAAC,CAAC;AACF;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,cAAc,CAAC,SAAS,CAAC,YAAY,GAAG,SAAS,KAAK,EAAE;AACpG,EAAEA,cAAI,CAAC,OAAO,CAAC,oBAAoB,CAAC,IAAI,EAAE,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;AAChI,CAAC,CAAC;AACF;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,cAAc,CAAC,SAAS,CAAC,cAAc,GAAG,WAAW;AACjG,EAAE,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;AAC/B,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,cAAc,CAAC,SAAS,CAAC,YAAY,GAAG,WAAW;AAC/F,EAAE,OAAOA,cAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,IAAI,CAAC;AAChD,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,cAAc,CAAC,SAAS,CAAC,eAAe,GAAG,WAAW;AAClG,EAAE;AACF,IAAIA,cAAI,CAAC,OAAO,CAAC,eAAe,CAAC,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,YAAY,EAAE,CAAC,CAAC,EAAE;AACrG,CAAC,CAAC;AACF;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,cAAc,CAAC,SAAS,CAAC,eAAe,GAAG,SAAS,KAAK,EAAE;AACvG,EAAEA,cAAI,CAAC,OAAO,CAAC,oBAAoB,CAAC,IAAI,EAAE,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;AAChI,CAAC,CAAC;AACF;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,cAAc,CAAC,SAAS,CAAC,iBAAiB,GAAG,WAAW;AACpG,EAAE,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC;AAClC,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,cAAc,CAAC,SAAS,CAAC,eAAe,GAAG,WAAW;AAClG,EAAE,OAAOA,cAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,IAAI,CAAC;AAChD,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,GAAG,SAAS,QAAQ,EAAE;AAC3E,EAAEA,cAAI,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;AAC7D,CAAC,CAAC;AACF,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,EAAEA,cAAI,CAAC,OAAO,CAAC,CAAC;AACnF,IAAI,IAAI,CAAC,KAAK,IAAI,CAAC,QAAQ,EAAE;AAC7B,EAAE,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,WAAW,GAAG,uDAAuD,CAAC;AAC9H,CAAC;AACD;AACA;AACA,IAAIA,cAAI,CAAC,OAAO,CAAC,kBAAkB,EAAE;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,SAAS,CAAC,QAAQ,GAAG,SAAS,mBAAmB,EAAE;AACzG,EAAE,OAAO,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,mBAAmB,EAAE,IAAI,CAAC,CAAC;AACnG,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,GAAG,SAAS,eAAe,EAAE,GAAG,EAAE;AAChG,MAAS,GAAG,GAAG;AACf,IAAI,KAAK,EAAEA,cAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;AACvD,IAAI;AACJ;AACA,EAAE,IAAI,eAAe,EAAE;AACvB,IAAI,GAAG,CAAC,oBAAoB,GAAG,GAAG,CAAC;AACnC,GAAG;AACH,EAAE,OAAO,GAAG,CAAC;AACb,CAAC,CAAC;AACF,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,iBAAiB,GAAG,SAAS,KAAK,EAAE;AAC1F,EAAE,IAAI,MAAM,GAAG,IAAIA,cAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;AAC5C,EAAE,IAAI,GAAG,GAAG,IAAI,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC;AACtE,EAAE,OAAO,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,2BAA2B,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;AACxG,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,2BAA2B,GAAG,SAAS,GAAG,EAAE,MAAM,EAAE;AAC1G,EAAE,OAAO,MAAM,CAAC,SAAS,EAAE,EAAE;AAC7B,IAAI,IAAI,MAAM,CAAC,UAAU,EAAE,EAAE;AAC7B,MAAM,MAAM;AACZ,KAAK;AACL,IAAI,IAAI,KAAK,GAAG,MAAM,CAAC,cAAc,EAAE,CAAC;AACxC,IAAI,QAAQ,KAAK;AACjB,IAAI,KAAK,CAAC;AACV,MAAM,IAAI,KAAK,0BAA0B,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC;AAC9D,MAAM,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AAC1B,MAAM,MAAM;AACZ,IAAI;AACJ,MAAM,MAAM,CAAC,SAAS,EAAE,CAAC;AACzB,MAAM,MAAM;AACZ,KAAK;AACL,GAAG;AACH,EAAE,OAAO,GAAG,CAAC;AACb,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,SAAS,CAAC,eAAe,GAAG,WAAW;AAC7F,EAAE,IAAI,MAAM,GAAG,IAAIA,cAAI,CAAC,YAAY,EAAE,CAAC;AACvC,EAAE,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,uBAAuB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;AAC9F,EAAE,OAAO,MAAM,CAAC,eAAe,EAAE,CAAC;AAClC,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,uBAAuB,GAAG,SAAS,OAAO,EAAE,MAAM,EAAE;AAC1G,EAAE,IAAI,CAAC,GAAG,SAAS,CAAC;AACpB,EAAE,CAAC,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;AACzB,EAAE,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE;AACpB,IAAI,MAAM,CAAC,WAAW;AACtB,MAAM,CAAC;AACP,MAAM,CAAC;AACP,KAAK,CAAC;AACN,GAAG;AACH,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,SAAS,CAAC,QAAQ,GAAG,WAAW;AACtF,EAAE,8BAA8BA,cAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE;AAC/E,CAAC,CAAC;AACF;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,SAAS,CAAC,QAAQ,GAAG,SAAS,KAAK,EAAE;AAC3F,EAAEA,cAAI,CAAC,OAAO,CAAC,oBAAoB,CAAC,IAAI,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;AACpD,CAAC,CAAC;AACF;AACA;AACA,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC;;;;ACt5DxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACsC;AACtC,IAAI,IAAI,GAAGA,cAAI,CAAC;AAChB,IAAI,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC;AACvC;AACsE;AACJ;AAC0B;AACZ;AAChF,IAAI,CAAC,YAAY,CAAC,gEAAgE,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;AAClG,IAAI,CAAC,YAAY,CAAC,iEAAiE,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;AACnG,IAAI,CAAC,YAAY,CAAC,iEAAiE,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;AACnG,IAAI,CAAC,YAAY,CAAC,kEAAkE,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;AACpG,IAAI,CAAC,YAAY,CAAC,8DAA8D,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;AAChG,IAAI,CAAC,YAAY,CAAC,+DAA+D,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;AACjG,IAAI,CAAC,YAAY,CAAC,+DAA+D,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;AACjG,IAAI,CAAC,YAAY,CAAC,gEAAgE,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;AAClG,IAAI,CAAC,YAAY,CAAC,2DAA2D,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;AAC7F,IAAI,CAAC,YAAY,CAAC,4DAA4D,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;AAC9F,IAAI,CAAC,YAAY,CAAC,wEAAwE,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;AAC1G,IAAI,CAAC,YAAY,CAAC,yEAAyE,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;AAC3G,IAAI,CAAC,YAAY,CAAC,qEAAqE,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;AACvG,IAAI,CAAC,YAAY,CAAC,sEAAsE,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;AACxG,IAAI,CAAC,YAAY,CAAC,4DAA4D,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;AAC9F,IAAI,CAAC,YAAY,CAAC,6DAA6D,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;AAC/F,IAAI,CAAC,YAAY,CAAC,uDAAuD,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;AACzF,IAAI,CAAC,YAAY,CAAC,+DAA+D,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;AACjG,IAAI,CAAC,YAAY,CAAC,gEAAgE,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;AAClG,IAAI,CAAC,YAAY,CAAC,8DAA8D,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;AAChG,IAAI,CAAC,YAAY,CAAC,+DAA+D,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;AACjG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,cAAc,GAAG,SAAS,QAAQ,EAAE;AAChF,EAAEA,cAAI,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,cAAc,CAAC,eAAe,EAAE,IAAI,CAAC,CAAC;AACnI,CAAC,CAAC;AACF,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,cAAc,EAAEA,cAAI,CAAC,OAAO,CAAC,CAAC;AACxF,IAAI,IAAI,CAAC,KAAK,IAAI,CAAC,QAAQ,EAAE;AAC7B,EAAE,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,cAAc,CAAC,WAAW,GAAG,4DAA4D,CAAC;AACxI,CAAC;AACD;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,cAAc,CAAC,eAAe,GAAG,CAAC,CAAC,CAAC,CAAC;AACjF;AACA;AACA;AACA,IAAIA,cAAI,CAAC,OAAO,CAAC,kBAAkB,EAAE;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,cAAc,CAAC,SAAS,CAAC,QAAQ,GAAG,SAAS,mBAAmB,EAAE;AAC9G,EAAE,OAAO,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,cAAc,CAAC,QAAQ,CAAC,mBAAmB,EAAE,IAAI,CAAC,CAAC;AACxG,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,cAAc,CAAC,QAAQ,GAAG,SAAS,eAAe,EAAE,GAAG,EAAE;AACrG,EAAE,IAAI,CAAC,EAAE,GAAG,GAAG;AACf,IAAI,MAAM,EAAE,CAAC,CAAC,GAAG,GAAG,CAAC,SAAS,EAAE,KAAKC,OAAmB,CAAC,IAAI,CAAC,QAAQ,CAAC,eAAe,EAAE,CAAC,CAAC;AAC1F,IAAI,KAAK,EAAE,CAAC,CAAC,GAAG,GAAG,CAAC,QAAQ,EAAE,KAAKE,SAAqB,CAAC,WAAW,CAAC,QAAQ,CAAC,eAAe,EAAE,CAAC,CAAC;AACjG,IAAI,wBAAwB,EAAEH,cAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,GAAG,EAAE,CAAC,CAAC;AACnE,GAAG,CAAC;AACJ;AACA,EAAE,IAAI,eAAe,EAAE;AACvB,IAAI,GAAG,CAAC,oBAAoB,GAAG,GAAG,CAAC;AACnC,GAAG;AACH,EAAE,OAAO,GAAG,CAAC;AACb,CAAC,CAAC;AACF,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,cAAc,CAAC,iBAAiB,GAAG,SAAS,KAAK,EAAE;AAC/F,EAAE,IAAI,MAAM,GAAG,IAAIA,cAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;AAC5C,EAAE,IAAI,GAAG,GAAG,IAAI,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,cAAc,CAAC;AAC3E,EAAE,OAAO,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,cAAc,CAAC,2BAA2B,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;AAC7G,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,cAAc,CAAC,2BAA2B,GAAG,SAAS,GAAG,EAAE,MAAM,EAAE;AAC/G,EAAE,OAAO,MAAM,CAAC,SAAS,EAAE,EAAE;AAC7B,IAAI,IAAI,MAAM,CAAC,UAAU,EAAE,EAAE;AAC7B,MAAM,MAAM;AACZ,KAAK;AACL,IAAI,IAAI,KAAK,GAAG,MAAM,CAAC,cAAc,EAAE,CAAC;AACxC,IAAI,QAAQ,KAAK;AACjB,IAAI,KAAK,CAAC;AACV,MAAM,IAAI,KAAK,GAAG,IAAIC,OAAmB,CAAC,IAAI,CAAC;AAC/C,MAAM,MAAM,CAAC,WAAW,CAAC,KAAK,CAACA,OAAmB,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;AACrF,MAAM,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;AAC3B,MAAM,MAAM;AACZ,IAAI,KAAK,CAAC;AACV,MAAM,IAAI,KAAK,GAAG,IAAIE,SAAqB,CAAC,WAAW,CAAC;AACxD,MAAM,MAAM,CAAC,WAAW,CAAC,KAAK,CAACA,SAAqB,CAAC,WAAW,CAAC,2BAA2B,CAAC,CAAC;AAC9F,MAAM,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AAC1B,MAAM,MAAM;AACZ,IAAI,KAAK,CAAC;AACV,MAAM,IAAI,KAAK,0BAA0B,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC;AAC9D,MAAM,GAAG,CAAC,uBAAuB,CAAC,KAAK,CAAC,CAAC;AACzC,MAAM,MAAM;AACZ,IAAI;AACJ,MAAM,MAAM,CAAC,SAAS,EAAE,CAAC;AACzB,MAAM,MAAM;AACZ,KAAK;AACL,GAAG;AACH,EAAE,OAAO,GAAG,CAAC;AACb,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,cAAc,CAAC,SAAS,CAAC,eAAe,GAAG,WAAW;AAClG,EAAE,IAAI,MAAM,GAAG,IAAIH,cAAI,CAAC,YAAY,EAAE,CAAC;AACvC,EAAE,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,cAAc,CAAC,uBAAuB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;AACnG,EAAE,OAAO,MAAM,CAAC,eAAe,EAAE,CAAC;AAClC,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,cAAc,CAAC,uBAAuB,GAAG,SAAS,OAAO,EAAE,MAAM,EAAE;AAC/G,EAAE,IAAI,CAAC,GAAG,SAAS,CAAC;AACpB,EAAE,CAAC,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;AAC1B,EAAE,IAAI,CAAC,IAAI,IAAI,EAAE;AACjB,IAAI,MAAM,CAAC,YAAY;AACvB,MAAM,CAAC;AACP,MAAM,CAAC;AACP,MAAMC,OAAmB,CAAC,IAAI,CAAC,uBAAuB;AACtD,KAAK,CAAC;AACN,GAAG;AACH,EAAE,CAAC,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;AACzB,EAAE,IAAI,CAAC,IAAI,IAAI,EAAE;AACjB,IAAI,MAAM,CAAC,YAAY;AACvB,MAAM,CAAC;AACP,MAAM,CAAC;AACP,MAAME,SAAqB,CAAC,WAAW,CAAC,uBAAuB;AAC/D,KAAK,CAAC;AACN,GAAG;AACH,EAAE,CAAC,GAAG,OAAO,CAAC,2BAA2B,EAAE,CAAC;AAC5C,EAAE,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE;AACpB,IAAI,MAAM,CAAC,mBAAmB;AAC9B,MAAM,CAAC;AACP,MAAM,CAAC;AACP,KAAK,CAAC;AACN,GAAG;AACH,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,cAAc,CAAC,SAAS,CAAC,SAAS,GAAG,WAAW;AAC5F,EAAE;AACF,IAAIH,cAAI,CAAC,OAAO,CAAC,eAAe,CAAC,IAAI,EAAEC,OAAmB,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE;AACrE,CAAC,CAAC;AACF;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,cAAc,CAAC,SAAS,CAAC,SAAS,GAAG,SAAS,KAAK,EAAE;AACjG,EAAED,cAAI,CAAC,OAAO,CAAC,eAAe,CAAC,IAAI,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;AAC/C,CAAC,CAAC;AACF;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,cAAc,CAAC,SAAS,CAAC,WAAW,GAAG,WAAW;AAC9F,EAAE,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;AAC5B,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,cAAc,CAAC,SAAS,CAAC,SAAS,GAAG,WAAW;AAC5F,EAAE,OAAOA,cAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,IAAI,CAAC;AAChD,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,cAAc,CAAC,SAAS,CAAC,QAAQ,GAAG,WAAW;AAC3F,EAAE;AACF,IAAIA,cAAI,CAAC,OAAO,CAAC,eAAe,CAAC,IAAI,EAAEG,SAAqB,CAAC,WAAW,EAAE,CAAC,CAAC,EAAE;AAC9E,CAAC,CAAC;AACF;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,cAAc,CAAC,SAAS,CAAC,QAAQ,GAAG,SAAS,KAAK,EAAE;AAChG,EAAEH,cAAI,CAAC,OAAO,CAAC,eAAe,CAAC,IAAI,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;AAC/C,CAAC,CAAC;AACF;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,cAAc,CAAC,SAAS,CAAC,UAAU,GAAG,WAAW;AAC7F,EAAE,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;AAC3B,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,cAAc,CAAC,SAAS,CAAC,QAAQ,GAAG,WAAW;AAC3F,EAAE,OAAOA,cAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,IAAI,CAAC;AAChD,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,cAAc,CAAC,SAAS,CAAC,2BAA2B,GAAG,WAAW;AAC9G,EAAE,sCAAsCA,cAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE;AAChF,CAAC,CAAC;AACF;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,cAAc,CAAC,SAAS,CAAC,2BAA2B,GAAG,SAAS,KAAK,EAAE;AACnH,EAAEA,cAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC;AAC9C,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,cAAc,CAAC,SAAS,CAAC,uBAAuB,GAAG,SAAS,KAAK,EAAE,SAAS,EAAE;AAC1H,EAAEA,cAAI,CAAC,OAAO,CAAC,kBAAkB,CAAC,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC;AAC7D,CAAC,CAAC;AACF;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,cAAc,CAAC,SAAS,CAAC,6BAA6B,GAAG,WAAW;AAChH,EAAE,IAAI,CAAC,2BAA2B,CAAC,EAAE,CAAC,CAAC;AACvC,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,eAAe,GAAG,SAAS,QAAQ,EAAE;AACjF,EAAEA,cAAI,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,eAAe,CAAC,eAAe,EAAE,IAAI,CAAC,CAAC;AACpI,CAAC,CAAC;AACF,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,eAAe,EAAEA,cAAI,CAAC,OAAO,CAAC,CAAC;AACzF,IAAI,IAAI,CAAC,KAAK,IAAI,CAAC,QAAQ,EAAE;AAC7B,EAAE,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,eAAe,CAAC,WAAW,GAAG,6DAA6D,CAAC;AAC1I,CAAC;AACD;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,eAAe,CAAC,eAAe,GAAG,CAAC,CAAC,CAAC,CAAC;AAClF;AACA;AACA;AACA,IAAIA,cAAI,CAAC,OAAO,CAAC,kBAAkB,EAAE;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,eAAe,CAAC,SAAS,CAAC,QAAQ,GAAG,SAAS,mBAAmB,EAAE;AAC/G,EAAE,OAAO,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,eAAe,CAAC,QAAQ,CAAC,mBAAmB,EAAE,IAAI,CAAC,CAAC;AACzG,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,eAAe,CAAC,QAAQ,GAAG,SAAS,eAAe,EAAE,GAAG,EAAE;AACtG,EAAE,IAAI,CAAC,EAAE,GAAG,GAAG;AACf,IAAI,SAAS,EAAEA,cAAI,CAAC,OAAO,CAAC,YAAY,CAAC,GAAG,CAAC,YAAY,EAAE;AAC3D,IAAII,SAA0B,CAAC,IAAI,CAAC,QAAQ,EAAE,eAAe,CAAC;AAC9D,IAAI,YAAY,EAAEJ,cAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;AAC7D,IAAI,MAAM,EAAE,CAAC,CAAC,GAAG,GAAG,CAAC,SAAS,EAAE,KAAKG,SAAqB,CAAC,YAAY,CAAC,QAAQ,CAAC,eAAe,EAAE,CAAC,CAAC;AACpG,GAAG,CAAC;AACJ;AACA,EAAE,IAAI,eAAe,EAAE;AACvB,IAAI,GAAG,CAAC,oBAAoB,GAAG,GAAG,CAAC;AACnC,GAAG;AACH,EAAE,OAAO,GAAG,CAAC;AACb,CAAC,CAAC;AACF,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,eAAe,CAAC,iBAAiB,GAAG,SAAS,KAAK,EAAE;AAChG,EAAE,IAAI,MAAM,GAAG,IAAIH,cAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;AAC5C,EAAE,IAAI,GAAG,GAAG,IAAI,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,eAAe,CAAC;AAC5E,EAAE,OAAO,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,eAAe,CAAC,2BAA2B,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;AAC9G,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,eAAe,CAAC,2BAA2B,GAAG,SAAS,GAAG,EAAE,MAAM,EAAE;AAChH,EAAE,OAAO,MAAM,CAAC,SAAS,EAAE,EAAE;AAC7B,IAAI,IAAI,MAAM,CAAC,UAAU,EAAE,EAAE;AAC7B,MAAM,MAAM;AACZ,KAAK;AACL,IAAI,IAAI,KAAK,GAAG,MAAM,CAAC,cAAc,EAAE,CAAC;AACxC,IAAI,QAAQ,KAAK;AACjB,IAAI,KAAK,CAAC;AACV,MAAM,IAAI,KAAK,GAAG,IAAII,SAA0B,CAAC,IAAI,CAAC;AACtD,MAAM,MAAM,CAAC,WAAW,CAAC,KAAK,CAACA,SAA0B,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;AAC5F,MAAM,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AAC1B,MAAM,MAAM;AACZ,IAAI,KAAK,CAAC;AACV,MAAM,IAAI,KAAK,0BAA0B,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC;AAC9D,MAAM,GAAG,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;AACjC,MAAM,MAAM;AACZ,IAAI,KAAK,CAAC;AACV,MAAM,IAAI,KAAK,GAAG,IAAID,SAAqB,CAAC,YAAY,CAAC;AACzD,MAAM,MAAM,CAAC,WAAW,CAAC,KAAK,CAACA,SAAqB,CAAC,YAAY,CAAC,2BAA2B,CAAC,CAAC;AAC/F,MAAM,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;AAC3B,MAAM,MAAM;AACZ,IAAI;AACJ,MAAM,MAAM,CAAC,SAAS,EAAE,CAAC;AACzB,MAAM,MAAM;AACZ,KAAK;AACL,GAAG;AACH,EAAE,OAAO,GAAG,CAAC;AACb,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,eAAe,CAAC,SAAS,CAAC,eAAe,GAAG,WAAW;AACnG,EAAE,IAAI,MAAM,GAAG,IAAIH,cAAI,CAAC,YAAY,EAAE,CAAC;AACvC,EAAE,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,eAAe,CAAC,uBAAuB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;AACpG,EAAE,OAAO,MAAM,CAAC,eAAe,EAAE,CAAC;AAClC,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,eAAe,CAAC,uBAAuB,GAAG,SAAS,OAAO,EAAE,MAAM,EAAE;AAChH,EAAE,IAAI,CAAC,GAAG,SAAS,CAAC;AACpB,EAAE,CAAC,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;AAC7B,EAAE,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE;AACpB,IAAI,MAAM,CAAC,oBAAoB;AAC/B,MAAM,CAAC;AACP,MAAM,CAAC;AACP,MAAMI,SAA0B,CAAC,IAAI,CAAC,uBAAuB;AAC7D,KAAK,CAAC;AACN,GAAG;AACH,EAAE,CAAC,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC;AAChC,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE;AACf,IAAI,MAAM,CAAC,WAAW;AACtB,MAAM,CAAC;AACP,MAAM,CAAC;AACP,KAAK,CAAC;AACN,GAAG;AACH,EAAE,CAAC,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;AAC1B,EAAE,IAAI,CAAC,IAAI,IAAI,EAAE;AACjB,IAAI,MAAM,CAAC,YAAY;AACvB,MAAM,CAAC;AACP,MAAM,CAAC;AACP,MAAMD,SAAqB,CAAC,YAAY,CAAC,uBAAuB;AAChE,KAAK,CAAC;AACN,GAAG;AACH,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,eAAe,CAAC,SAAS,CAAC,YAAY,GAAG,WAAW;AAChG,EAAE;AACF,IAAIH,cAAI,CAAC,OAAO,CAAC,uBAAuB,CAAC,IAAI,EAAEI,SAA0B,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE;AACpF,CAAC,CAAC;AACF;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,eAAe,CAAC,SAAS,CAAC,YAAY,GAAG,SAAS,KAAK,EAAE;AACrG,EAAEJ,cAAI,CAAC,OAAO,CAAC,uBAAuB,CAAC,IAAI,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;AACvD,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,eAAe,CAAC,SAAS,CAAC,QAAQ,GAAG,SAAS,SAAS,EAAE,SAAS,EAAE;AAChH,EAAE,OAAOA,cAAI,CAAC,OAAO,CAAC,yBAAyB,CAAC,IAAI,EAAE,CAAC,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;AACjI,CAAC,CAAC;AACF;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,eAAe,CAAC,SAAS,CAAC,cAAc,GAAG,WAAW;AAClG,EAAE,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;AACxB,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,eAAe,CAAC,SAAS,CAAC,eAAe,GAAG,WAAW;AACnG,EAAE,8BAA8BA,cAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE;AAC9E,CAAC,CAAC;AACF;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,eAAe,CAAC,SAAS,CAAC,eAAe,GAAG,SAAS,KAAK,EAAE;AACxG,EAAEA,cAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,IAAI,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;AACjD,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,eAAe,CAAC,SAAS,CAAC,SAAS,GAAG,WAAW;AAC7F,EAAE;AACF,IAAIA,cAAI,CAAC,OAAO,CAAC,eAAe,CAAC,IAAI,EAAEG,SAAqB,CAAC,YAAY,EAAE,CAAC,CAAC,EAAE;AAC/E,CAAC,CAAC;AACF;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,eAAe,CAAC,SAAS,CAAC,SAAS,GAAG,SAAS,KAAK,EAAE;AAClG,EAAEH,cAAI,CAAC,OAAO,CAAC,eAAe,CAAC,IAAI,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;AAC/C,CAAC,CAAC;AACF;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,eAAe,CAAC,SAAS,CAAC,WAAW,GAAG,WAAW;AAC/F,EAAE,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;AAC5B,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,eAAe,CAAC,SAAS,CAAC,SAAS,GAAG,WAAW;AAC7F,EAAE,OAAOA,cAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,IAAI,CAAC;AAChD,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,iBAAiB,GAAG,SAAS,QAAQ,EAAE;AACnF,EAAEA,cAAI,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;AAC7D,CAAC,CAAC;AACF,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,iBAAiB,EAAEA,cAAI,CAAC,OAAO,CAAC,CAAC;AAC3F,IAAI,IAAI,CAAC,KAAK,IAAI,CAAC,QAAQ,EAAE;AAC7B,EAAE,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,iBAAiB,CAAC,WAAW,GAAG,+DAA+D,CAAC;AAC9I,CAAC;AACD;AACA;AACA,IAAIA,cAAI,CAAC,OAAO,CAAC,kBAAkB,EAAE;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,iBAAiB,CAAC,SAAS,CAAC,QAAQ,GAAG,SAAS,mBAAmB,EAAE;AACjH,EAAE,OAAO,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,iBAAiB,CAAC,QAAQ,CAAC,mBAAmB,EAAE,IAAI,CAAC,CAAC;AAC3G,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,iBAAiB,CAAC,QAAQ,GAAG,SAAS,eAAe,EAAE,GAAG,EAAE;AACxG,EAAE,IAAI,CAAC,EAAE,GAAG,GAAG;AACf,IAAI,MAAM,EAAE,CAAC,CAAC,GAAG,GAAG,CAAC,SAAS,EAAE,KAAKC,OAAmB,CAAC,IAAI,CAAC,QAAQ,CAAC,eAAe,EAAE,CAAC,CAAC;AAC1F,IAAI,MAAM,EAAE,CAAC,CAAC,GAAG,GAAG,CAAC,SAAS,EAAE,KAAKA,OAAmB,CAAC,IAAI,CAAC,QAAQ,CAAC,eAAe,EAAE,CAAC,CAAC;AAC1F,GAAG,CAAC;AACJ;AACA,EAAE,IAAI,eAAe,EAAE;AACvB,IAAI,GAAG,CAAC,oBAAoB,GAAG,GAAG,CAAC;AACnC,GAAG;AACH,EAAE,OAAO,GAAG,CAAC;AACb,CAAC,CAAC;AACF,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,iBAAiB,CAAC,iBAAiB,GAAG,SAAS,KAAK,EAAE;AAClG,EAAE,IAAI,MAAM,GAAG,IAAID,cAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;AAC5C,EAAE,IAAI,GAAG,GAAG,IAAI,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,iBAAiB,CAAC;AAC9E,EAAE,OAAO,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,iBAAiB,CAAC,2BAA2B,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;AAChH,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,iBAAiB,CAAC,2BAA2B,GAAG,SAAS,GAAG,EAAE,MAAM,EAAE;AAClH,EAAE,OAAO,MAAM,CAAC,SAAS,EAAE,EAAE;AAC7B,IAAI,IAAI,MAAM,CAAC,UAAU,EAAE,EAAE;AAC7B,MAAM,MAAM;AACZ,KAAK;AACL,IAAI,IAAI,KAAK,GAAG,MAAM,CAAC,cAAc,EAAE,CAAC;AACxC,IAAI,QAAQ,KAAK;AACjB,IAAI,KAAK,CAAC;AACV,MAAM,IAAI,KAAK,GAAG,IAAIC,OAAmB,CAAC,IAAI,CAAC;AAC/C,MAAM,MAAM,CAAC,WAAW,CAAC,KAAK,CAACA,OAAmB,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;AACrF,MAAM,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;AAC3B,MAAM,MAAM;AACZ,IAAI,KAAK,CAAC;AACV,MAAM,IAAI,KAAK,GAAG,IAAIA,OAAmB,CAAC,IAAI,CAAC;AAC/C,MAAM,MAAM,CAAC,WAAW,CAAC,KAAK,CAACA,OAAmB,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;AACrF,MAAM,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;AAC3B,MAAM,MAAM;AACZ,IAAI;AACJ,MAAM,MAAM,CAAC,SAAS,EAAE,CAAC;AACzB,MAAM,MAAM;AACZ,KAAK;AACL,GAAG;AACH,EAAE,OAAO,GAAG,CAAC;AACb,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,iBAAiB,CAAC,SAAS,CAAC,eAAe,GAAG,WAAW;AACrG,EAAE,IAAI,MAAM,GAAG,IAAID,cAAI,CAAC,YAAY,EAAE,CAAC;AACvC,EAAE,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,iBAAiB,CAAC,uBAAuB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;AACtG,EAAE,OAAO,MAAM,CAAC,eAAe,EAAE,CAAC;AAClC,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,iBAAiB,CAAC,uBAAuB,GAAG,SAAS,OAAO,EAAE,MAAM,EAAE;AAClH,EAAE,IAAI,CAAC,GAAG,SAAS,CAAC;AACpB,EAAE,CAAC,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;AAC1B,EAAE,IAAI,CAAC,IAAI,IAAI,EAAE;AACjB,IAAI,MAAM,CAAC,YAAY;AACvB,MAAM,CAAC;AACP,MAAM,CAAC;AACP,MAAMC,OAAmB,CAAC,IAAI,CAAC,uBAAuB;AACtD,KAAK,CAAC;AACN,GAAG;AACH,EAAE,CAAC,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;AAC1B,EAAE,IAAI,CAAC,IAAI,IAAI,EAAE;AACjB,IAAI,MAAM,CAAC,YAAY;AACvB,MAAM,CAAC;AACP,MAAM,CAAC;AACP,MAAMA,OAAmB,CAAC,IAAI,CAAC,uBAAuB;AACtD,KAAK,CAAC;AACN,GAAG;AACH,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,iBAAiB,CAAC,SAAS,CAAC,SAAS,GAAG,WAAW;AAC/F,EAAE;AACF,IAAID,cAAI,CAAC,OAAO,CAAC,eAAe,CAAC,IAAI,EAAEC,OAAmB,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE;AACrE,CAAC,CAAC;AACF;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,iBAAiB,CAAC,SAAS,CAAC,SAAS,GAAG,SAAS,KAAK,EAAE;AACpG,EAAED,cAAI,CAAC,OAAO,CAAC,eAAe,CAAC,IAAI,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;AAC/C,CAAC,CAAC;AACF;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,iBAAiB,CAAC,SAAS,CAAC,WAAW,GAAG,WAAW;AACjG,EAAE,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;AAC5B,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,iBAAiB,CAAC,SAAS,CAAC,SAAS,GAAG,WAAW;AAC/F,EAAE,OAAOA,cAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,IAAI,CAAC;AAChD,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,iBAAiB,CAAC,SAAS,CAAC,SAAS,GAAG,WAAW;AAC/F,EAAE;AACF,IAAIA,cAAI,CAAC,OAAO,CAAC,eAAe,CAAC,IAAI,EAAEC,OAAmB,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE;AACrE,CAAC,CAAC;AACF;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,iBAAiB,CAAC,SAAS,CAAC,SAAS,GAAG,SAAS,KAAK,EAAE;AACpG,EAAED,cAAI,CAAC,OAAO,CAAC,eAAe,CAAC,IAAI,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;AAC/C,CAAC,CAAC;AACF;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,iBAAiB,CAAC,SAAS,CAAC,WAAW,GAAG,WAAW;AACjG,EAAE,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;AAC5B,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,iBAAiB,CAAC,SAAS,CAAC,SAAS,GAAG,WAAW;AAC/F,EAAE,OAAOA,cAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,IAAI,CAAC;AAChD,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,kBAAkB,GAAG,SAAS,QAAQ,EAAE;AACpF,EAAEA,cAAI,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;AAC7D,CAAC,CAAC;AACF,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,kBAAkB,EAAEA,cAAI,CAAC,OAAO,CAAC,CAAC;AAC5F,IAAI,IAAI,CAAC,KAAK,IAAI,CAAC,QAAQ,EAAE;AAC7B,EAAE,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,kBAAkB,CAAC,WAAW,GAAG,gEAAgE,CAAC;AAChJ,CAAC;AACD;AACA;AACA,IAAIA,cAAI,CAAC,OAAO,CAAC,kBAAkB,EAAE;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,kBAAkB,CAAC,SAAS,CAAC,QAAQ,GAAG,SAAS,mBAAmB,EAAE;AAClH,EAAE,OAAO,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,kBAAkB,CAAC,QAAQ,CAAC,mBAAmB,EAAE,IAAI,CAAC,CAAC;AAC5G,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,kBAAkB,CAAC,QAAQ,GAAG,SAAS,eAAe,EAAE,GAAG,EAAE;AACzG,MAAS,GAAG,GAAG;AACf;AACA,IAAI;AACJ;AACA,EAAE,IAAI,eAAe,EAAE;AACvB,IAAI,GAAG,CAAC,oBAAoB,GAAG,GAAG,CAAC;AACnC,GAAG;AACH,EAAE,OAAO,GAAG,CAAC;AACb,CAAC,CAAC;AACF,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,kBAAkB,CAAC,iBAAiB,GAAG,SAAS,KAAK,EAAE;AACnG,EAAE,IAAI,MAAM,GAAG,IAAIA,cAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;AAC5C,EAAE,IAAI,GAAG,GAAG,IAAI,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,kBAAkB,CAAC;AAC/E,EAAE,OAAO,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,kBAAkB,CAAC,2BAA2B,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;AACjH,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,kBAAkB,CAAC,2BAA2B,GAAG,SAAS,GAAG,EAAE,MAAM,EAAE;AACnH,EAAE,OAAO,MAAM,CAAC,SAAS,EAAE,EAAE;AAC7B,IAAI,IAAI,MAAM,CAAC,UAAU,EAAE,EAAE;AAC7B,MAAM,MAAM;AACZ,KAAK;AACL,IAAI,IAAI,KAAK,GAAG,MAAM,CAAC,cAAc,EAAE,CAAC;AACxC,IAAI,QAAQ,KAAK;AACjB,IAAI;AACJ,MAAM,MAAM,CAAC,SAAS,EAAE,CAAC;AACzB,MAAM,MAAM;AACZ,KAAK;AACL,GAAG;AACH,EAAE,OAAO,GAAG,CAAC;AACb,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,kBAAkB,CAAC,SAAS,CAAC,eAAe,GAAG,WAAW;AACtG,EAAE,IAAI,MAAM,GAAG,IAAIA,cAAI,CAAC,YAAY,EAAE,CAAC;AACvC,EAAE,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,kBAAkB,CAAC,uBAAuB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;AACvG,EAAE,OAAO,MAAM,CAAC,eAAe,EAAE,CAAC;AAClC,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,kBAAkB,CAAC,uBAAuB,GAAG,SAAS,OAAO,EAAE,MAAM,EAAE;AAEnH,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,mBAAmB,GAAG,SAAS,QAAQ,EAAE;AACrF,EAAEA,cAAI,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;AAC7D,CAAC,CAAC;AACF,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,mBAAmB,EAAEA,cAAI,CAAC,OAAO,CAAC,CAAC;AAC7F,IAAI,IAAI,CAAC,KAAK,IAAI,CAAC,QAAQ,EAAE;AAC7B,EAAE,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,mBAAmB,CAAC,WAAW,GAAG,iEAAiE,CAAC;AAClJ,CAAC;AACD;AACA;AACA,IAAIA,cAAI,CAAC,OAAO,CAAC,kBAAkB,EAAE;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,mBAAmB,CAAC,SAAS,CAAC,QAAQ,GAAG,SAAS,mBAAmB,EAAE;AACnH,EAAE,OAAO,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,mBAAmB,CAAC,QAAQ,CAAC,mBAAmB,EAAE,IAAI,CAAC,CAAC;AAC7G,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,mBAAmB,CAAC,QAAQ,GAAG,SAAS,eAAe,EAAE,GAAG,EAAE;AAC1G,EAAE,IAAI,CAAC,EAAE,GAAG,GAAG;AACf,IAAI,MAAM,EAAE,CAAC,CAAC,GAAG,GAAG,CAAC,SAAS,EAAE,KAAKC,OAAmB,CAAC,IAAI,CAAC,QAAQ,CAAC,eAAe,EAAE,CAAC,CAAC;AAC1F,IAAI,MAAM,EAAE,CAAC,CAAC,GAAG,GAAG,CAAC,SAAS,EAAE,KAAKA,OAAmB,CAAC,IAAI,CAAC,QAAQ,CAAC,eAAe,EAAE,CAAC,CAAC;AAC1F,GAAG,CAAC;AACJ;AACA,EAAE,IAAI,eAAe,EAAE;AACvB,IAAI,GAAG,CAAC,oBAAoB,GAAG,GAAG,CAAC;AACnC,GAAG;AACH,EAAE,OAAO,GAAG,CAAC;AACb,CAAC,CAAC;AACF,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,mBAAmB,CAAC,iBAAiB,GAAG,SAAS,KAAK,EAAE;AACpG,EAAE,IAAI,MAAM,GAAG,IAAID,cAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;AAC5C,EAAE,IAAI,GAAG,GAAG,IAAI,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,mBAAmB,CAAC;AAChF,EAAE,OAAO,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,mBAAmB,CAAC,2BAA2B,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;AAClH,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,mBAAmB,CAAC,2BAA2B,GAAG,SAAS,GAAG,EAAE,MAAM,EAAE;AACpH,EAAE,OAAO,MAAM,CAAC,SAAS,EAAE,EAAE;AAC7B,IAAI,IAAI,MAAM,CAAC,UAAU,EAAE,EAAE;AAC7B,MAAM,MAAM;AACZ,KAAK;AACL,IAAI,IAAI,KAAK,GAAG,MAAM,CAAC,cAAc,EAAE,CAAC;AACxC,IAAI,QAAQ,KAAK;AACjB,IAAI,KAAK,CAAC;AACV,MAAM,IAAI,KAAK,GAAG,IAAIC,OAAmB,CAAC,IAAI,CAAC;AAC/C,MAAM,MAAM,CAAC,WAAW,CAAC,KAAK,CAACA,OAAmB,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;AACrF,MAAM,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;AAC3B,MAAM,MAAM;AACZ,IAAI,KAAK,CAAC;AACV,MAAM,IAAI,KAAK,GAAG,IAAIA,OAAmB,CAAC,IAAI,CAAC;AAC/C,MAAM,MAAM,CAAC,WAAW,CAAC,KAAK,CAACA,OAAmB,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;AACrF,MAAM,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;AAC3B,MAAM,MAAM;AACZ,IAAI;AACJ,MAAM,MAAM,CAAC,SAAS,EAAE,CAAC;AACzB,MAAM,MAAM;AACZ,KAAK;AACL,GAAG;AACH,EAAE,OAAO,GAAG,CAAC;AACb,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,mBAAmB,CAAC,SAAS,CAAC,eAAe,GAAG,WAAW;AACvG,EAAE,IAAI,MAAM,GAAG,IAAID,cAAI,CAAC,YAAY,EAAE,CAAC;AACvC,EAAE,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,mBAAmB,CAAC,uBAAuB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;AACxG,EAAE,OAAO,MAAM,CAAC,eAAe,EAAE,CAAC;AAClC,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,mBAAmB,CAAC,uBAAuB,GAAG,SAAS,OAAO,EAAE,MAAM,EAAE;AACpH,EAAE,IAAI,CAAC,GAAG,SAAS,CAAC;AACpB,EAAE,CAAC,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;AAC1B,EAAE,IAAI,CAAC,IAAI,IAAI,EAAE;AACjB,IAAI,MAAM,CAAC,YAAY;AACvB,MAAM,CAAC;AACP,MAAM,CAAC;AACP,MAAMC,OAAmB,CAAC,IAAI,CAAC,uBAAuB;AACtD,KAAK,CAAC;AACN,GAAG;AACH,EAAE,CAAC,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;AAC1B,EAAE,IAAI,CAAC,IAAI,IAAI,EAAE;AACjB,IAAI,MAAM,CAAC,YAAY;AACvB,MAAM,CAAC;AACP,MAAM,CAAC;AACP,MAAMA,OAAmB,CAAC,IAAI,CAAC,uBAAuB;AACtD,KAAK,CAAC;AACN,GAAG;AACH,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,mBAAmB,CAAC,SAAS,CAAC,SAAS,GAAG,WAAW;AACjG,EAAE;AACF,IAAID,cAAI,CAAC,OAAO,CAAC,eAAe,CAAC,IAAI,EAAEC,OAAmB,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE;AACrE,CAAC,CAAC;AACF;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,mBAAmB,CAAC,SAAS,CAAC,SAAS,GAAG,SAAS,KAAK,EAAE;AACtG,EAAED,cAAI,CAAC,OAAO,CAAC,eAAe,CAAC,IAAI,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;AAC/C,CAAC,CAAC;AACF;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,mBAAmB,CAAC,SAAS,CAAC,WAAW,GAAG,WAAW;AACnG,EAAE,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;AAC5B,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,mBAAmB,CAAC,SAAS,CAAC,SAAS,GAAG,WAAW;AACjG,EAAE,OAAOA,cAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,IAAI,CAAC;AAChD,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,mBAAmB,CAAC,SAAS,CAAC,SAAS,GAAG,WAAW;AACjG,EAAE;AACF,IAAIA,cAAI,CAAC,OAAO,CAAC,eAAe,CAAC,IAAI,EAAEC,OAAmB,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE;AACrE,CAAC,CAAC;AACF;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,mBAAmB,CAAC,SAAS,CAAC,SAAS,GAAG,SAAS,KAAK,EAAE;AACtG,EAAED,cAAI,CAAC,OAAO,CAAC,eAAe,CAAC,IAAI,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;AAC/C,CAAC,CAAC;AACF;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,mBAAmB,CAAC,SAAS,CAAC,WAAW,GAAG,WAAW;AACnG,EAAE,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;AAC5B,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,mBAAmB,CAAC,SAAS,CAAC,SAAS,GAAG,WAAW;AACjG,EAAE,OAAOA,cAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,IAAI,CAAC;AAChD,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,oBAAoB,GAAG,SAAS,QAAQ,EAAE;AACtF,EAAEA,cAAI,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;AAC7D,CAAC,CAAC;AACF,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,oBAAoB,EAAEA,cAAI,CAAC,OAAO,CAAC,CAAC;AAC9F,IAAI,IAAI,CAAC,KAAK,IAAI,CAAC,QAAQ,EAAE;AAC7B,EAAE,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,oBAAoB,CAAC,WAAW,GAAG,kEAAkE,CAAC;AACpJ,CAAC;AACD;AACA;AACA,IAAIA,cAAI,CAAC,OAAO,CAAC,kBAAkB,EAAE;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,oBAAoB,CAAC,SAAS,CAAC,QAAQ,GAAG,SAAS,mBAAmB,EAAE;AACpH,EAAE,OAAO,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,oBAAoB,CAAC,QAAQ,CAAC,mBAAmB,EAAE,IAAI,CAAC,CAAC;AAC9G,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,oBAAoB,CAAC,QAAQ,GAAG,SAAS,eAAe,EAAE,GAAG,EAAE;AAC3G,MAAS,GAAG,GAAG;AACf;AACA,IAAI;AACJ;AACA,EAAE,IAAI,eAAe,EAAE;AACvB,IAAI,GAAG,CAAC,oBAAoB,GAAG,GAAG,CAAC;AACnC,GAAG;AACH,EAAE,OAAO,GAAG,CAAC;AACb,CAAC,CAAC;AACF,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,oBAAoB,CAAC,iBAAiB,GAAG,SAAS,KAAK,EAAE;AACrG,EAAE,IAAI,MAAM,GAAG,IAAIA,cAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;AAC5C,EAAE,IAAI,GAAG,GAAG,IAAI,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,oBAAoB,CAAC;AACjF,EAAE,OAAO,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,oBAAoB,CAAC,2BAA2B,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;AACnH,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,oBAAoB,CAAC,2BAA2B,GAAG,SAAS,GAAG,EAAE,MAAM,EAAE;AACrH,EAAE,OAAO,MAAM,CAAC,SAAS,EAAE,EAAE;AAC7B,IAAI,IAAI,MAAM,CAAC,UAAU,EAAE,EAAE;AAC7B,MAAM,MAAM;AACZ,KAAK;AACL,IAAI,IAAI,KAAK,GAAG,MAAM,CAAC,cAAc,EAAE,CAAC;AACxC,IAAI,QAAQ,KAAK;AACjB,IAAI;AACJ,MAAM,MAAM,CAAC,SAAS,EAAE,CAAC;AACzB,MAAM,MAAM;AACZ,KAAK;AACL,GAAG;AACH,EAAE,OAAO,GAAG,CAAC;AACb,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,oBAAoB,CAAC,SAAS,CAAC,eAAe,GAAG,WAAW;AACxG,EAAE,IAAI,MAAM,GAAG,IAAIA,cAAI,CAAC,YAAY,EAAE,CAAC;AACvC,EAAE,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,oBAAoB,CAAC,uBAAuB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;AACzG,EAAE,OAAO,MAAM,CAAC,eAAe,EAAE,CAAC;AAClC,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,oBAAoB,CAAC,uBAAuB,GAAG,SAAS,OAAO,EAAE,MAAM,EAAE;AAErH,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,gBAAgB,GAAG,SAAS,QAAQ,EAAE;AAClF,EAAEA,cAAI,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;AAC7D,CAAC,CAAC;AACF,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,gBAAgB,EAAEA,cAAI,CAAC,OAAO,CAAC,CAAC;AAC1F,IAAI,IAAI,CAAC,KAAK,IAAI,CAAC,QAAQ,EAAE;AAC7B,EAAE,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,gBAAgB,CAAC,WAAW,GAAG,8DAA8D,CAAC;AAC5I,CAAC;AACD;AACA;AACA,IAAIA,cAAI,CAAC,OAAO,CAAC,kBAAkB,EAAE;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,gBAAgB,CAAC,SAAS,CAAC,QAAQ,GAAG,SAAS,mBAAmB,EAAE;AAChH,EAAE,OAAO,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,gBAAgB,CAAC,QAAQ,CAAC,mBAAmB,EAAE,IAAI,CAAC,CAAC;AAC1G,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,gBAAgB,CAAC,QAAQ,GAAG,SAAS,eAAe,EAAE,GAAG,EAAE;AACvG,EAAE,IAAI,CAAC,EAAE,GAAG,GAAG;AACf,IAAI,MAAM,EAAE,CAAC,CAAC,GAAG,GAAG,CAAC,SAAS,EAAE,KAAKC,OAAmB,CAAC,IAAI,CAAC,QAAQ,CAAC,eAAe,EAAE,CAAC,CAAC;AAC1F,GAAG,CAAC;AACJ;AACA,EAAE,IAAI,eAAe,EAAE;AACvB,IAAI,GAAG,CAAC,oBAAoB,GAAG,GAAG,CAAC;AACnC,GAAG;AACH,EAAE,OAAO,GAAG,CAAC;AACb,CAAC,CAAC;AACF,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,gBAAgB,CAAC,iBAAiB,GAAG,SAAS,KAAK,EAAE;AACjG,EAAE,IAAI,MAAM,GAAG,IAAID,cAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;AAC5C,EAAE,IAAI,GAAG,GAAG,IAAI,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,gBAAgB,CAAC;AAC7E,EAAE,OAAO,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,gBAAgB,CAAC,2BAA2B,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;AAC/G,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,gBAAgB,CAAC,2BAA2B,GAAG,SAAS,GAAG,EAAE,MAAM,EAAE;AACjH,EAAE,OAAO,MAAM,CAAC,SAAS,EAAE,EAAE;AAC7B,IAAI,IAAI,MAAM,CAAC,UAAU,EAAE,EAAE;AAC7B,MAAM,MAAM;AACZ,KAAK;AACL,IAAI,IAAI,KAAK,GAAG,MAAM,CAAC,cAAc,EAAE,CAAC;AACxC,IAAI,QAAQ,KAAK;AACjB,IAAI,KAAK,CAAC;AACV,MAAM,IAAI,KAAK,GAAG,IAAIC,OAAmB,CAAC,IAAI,CAAC;AAC/C,MAAM,MAAM,CAAC,WAAW,CAAC,KAAK,CAACA,OAAmB,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;AACrF,MAAM,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;AAC3B,MAAM,MAAM;AACZ,IAAI;AACJ,MAAM,MAAM,CAAC,SAAS,EAAE,CAAC;AACzB,MAAM,MAAM;AACZ,KAAK;AACL,GAAG;AACH,EAAE,OAAO,GAAG,CAAC;AACb,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,gBAAgB,CAAC,SAAS,CAAC,eAAe,GAAG,WAAW;AACpG,EAAE,IAAI,MAAM,GAAG,IAAID,cAAI,CAAC,YAAY,EAAE,CAAC;AACvC,EAAE,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,gBAAgB,CAAC,uBAAuB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;AACrG,EAAE,OAAO,MAAM,CAAC,eAAe,EAAE,CAAC;AAClC,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,gBAAgB,CAAC,uBAAuB,GAAG,SAAS,OAAO,EAAE,MAAM,EAAE;AACjH,EAAE,IAAI,CAAC,GAAG,SAAS,CAAC;AACpB,EAAE,CAAC,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;AAC1B,EAAE,IAAI,CAAC,IAAI,IAAI,EAAE;AACjB,IAAI,MAAM,CAAC,YAAY;AACvB,MAAM,CAAC;AACP,MAAM,CAAC;AACP,MAAMC,OAAmB,CAAC,IAAI,CAAC,uBAAuB;AACtD,KAAK,CAAC;AACN,GAAG;AACH,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,gBAAgB,CAAC,SAAS,CAAC,SAAS,GAAG,WAAW;AAC9F,EAAE;AACF,IAAID,cAAI,CAAC,OAAO,CAAC,eAAe,CAAC,IAAI,EAAEC,OAAmB,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE;AACrE,CAAC,CAAC;AACF;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,gBAAgB,CAAC,SAAS,CAAC,SAAS,GAAG,SAAS,KAAK,EAAE;AACnG,EAAED,cAAI,CAAC,OAAO,CAAC,eAAe,CAAC,IAAI,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;AAC/C,CAAC,CAAC;AACF;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,gBAAgB,CAAC,SAAS,CAAC,WAAW,GAAG,WAAW;AAChG,EAAE,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;AAC5B,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,gBAAgB,CAAC,SAAS,CAAC,SAAS,GAAG,WAAW;AAC9F,EAAE,OAAOA,cAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,IAAI,CAAC;AAChD,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,iBAAiB,GAAG,SAAS,QAAQ,EAAE;AACnF,EAAEA,cAAI,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;AAC7D,CAAC,CAAC;AACF,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,iBAAiB,EAAEA,cAAI,CAAC,OAAO,CAAC,CAAC;AAC3F,IAAI,IAAI,CAAC,KAAK,IAAI,CAAC,QAAQ,EAAE;AAC7B,EAAE,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,iBAAiB,CAAC,WAAW,GAAG,+DAA+D,CAAC;AAC9I,CAAC;AACD;AACA;AACA,IAAIA,cAAI,CAAC,OAAO,CAAC,kBAAkB,EAAE;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,iBAAiB,CAAC,SAAS,CAAC,QAAQ,GAAG,SAAS,mBAAmB,EAAE;AACjH,EAAE,OAAO,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,iBAAiB,CAAC,QAAQ,CAAC,mBAAmB,EAAE,IAAI,CAAC,CAAC;AAC3G,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,iBAAiB,CAAC,QAAQ,GAAG,SAAS,eAAe,EAAE,GAAG,EAAE;AACxG,EAAE,IAAI,CAAC,EAAE,GAAG,GAAG;AACf,IAAI,MAAM,EAAE,CAAC,CAAC,GAAG,GAAG,CAAC,SAAS,EAAE,KAAKI,SAA0B,CAAC,cAAc,CAAC,QAAQ,CAAC,eAAe,EAAE,CAAC,CAAC;AAC3G,IAAI,SAAS,EAAE,CAAC,CAAC,GAAG,GAAG,CAAC,YAAY,EAAE,KAAK,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,eAAe,EAAE,CAAC,CAAC;AAC7H,GAAG,CAAC;AACJ;AACA,EAAE,IAAI,eAAe,EAAE;AACvB,IAAI,GAAG,CAAC,oBAAoB,GAAG,GAAG,CAAC;AACnC,GAAG;AACH,EAAE,OAAO,GAAG,CAAC;AACb,CAAC,CAAC;AACF,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,iBAAiB,CAAC,iBAAiB,GAAG,SAAS,KAAK,EAAE;AAClG,EAAE,IAAI,MAAM,GAAG,IAAIJ,cAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;AAC5C,EAAE,IAAI,GAAG,GAAG,IAAI,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,iBAAiB,CAAC;AAC9E,EAAE,OAAO,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,iBAAiB,CAAC,2BAA2B,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;AAChH,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,iBAAiB,CAAC,2BAA2B,GAAG,SAAS,GAAG,EAAE,MAAM,EAAE;AAClH,EAAE,OAAO,MAAM,CAAC,SAAS,EAAE,EAAE;AAC7B,IAAI,IAAI,MAAM,CAAC,UAAU,EAAE,EAAE;AAC7B,MAAM,MAAM;AACZ,KAAK;AACL,IAAI,IAAI,KAAK,GAAG,MAAM,CAAC,cAAc,EAAE,CAAC;AACxC,IAAI,QAAQ,KAAK;AACjB,IAAI,KAAK,CAAC;AACV,MAAM,IAAI,KAAK,GAAG,IAAII,SAA0B,CAAC,cAAc,CAAC;AAChE,MAAM,MAAM,CAAC,WAAW,CAAC,KAAK,CAACA,SAA0B,CAAC,cAAc,CAAC,2BAA2B,CAAC,CAAC;AACtG,MAAM,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;AAC3B,MAAM,MAAM;AACZ,IAAI,KAAK,CAAC;AACV,MAAM,IAAI,KAAK,GAAG,IAAI,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC;AAC5E,MAAM,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,2BAA2B,CAAC,CAAC;AAClH,MAAM,GAAG,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;AAC9B,MAAM,MAAM;AACZ,IAAI;AACJ,MAAM,MAAM,CAAC,SAAS,EAAE,CAAC;AACzB,MAAM,MAAM;AACZ,KAAK;AACL,GAAG;AACH,EAAE,OAAO,GAAG,CAAC;AACb,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,iBAAiB,CAAC,SAAS,CAAC,eAAe,GAAG,WAAW;AACrG,EAAE,IAAI,MAAM,GAAG,IAAIJ,cAAI,CAAC,YAAY,EAAE,CAAC;AACvC,EAAE,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,iBAAiB,CAAC,uBAAuB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;AACtG,EAAE,OAAO,MAAM,CAAC,eAAe,EAAE,CAAC;AAClC,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,iBAAiB,CAAC,uBAAuB,GAAG,SAAS,OAAO,EAAE,MAAM,EAAE;AAClH,EAAE,IAAI,CAAC,GAAG,SAAS,CAAC;AACpB,EAAE,CAAC,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;AAC1B,EAAE,IAAI,CAAC,IAAI,IAAI,EAAE;AACjB,IAAI,MAAM,CAAC,YAAY;AACvB,MAAM,CAAC;AACP,MAAM,CAAC;AACP,MAAMI,SAA0B,CAAC,cAAc,CAAC,uBAAuB;AACvE,KAAK,CAAC;AACN,GAAG;AACH,EAAE,CAAC,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;AAC7B,EAAE,IAAI,CAAC,IAAI,IAAI,EAAE;AACjB,IAAI,MAAM,CAAC,YAAY;AACvB,MAAM,CAAC;AACP,MAAM,CAAC;AACP,MAAM,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,uBAAuB;AACnF,KAAK,CAAC;AACN,GAAG;AACH,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,iBAAiB,CAAC,SAAS,CAAC,SAAS,GAAG,WAAW;AAC/F,EAAE;AACF,IAAIJ,cAAI,CAAC,OAAO,CAAC,eAAe,CAAC,IAAI,EAAEI,SAA0B,CAAC,cAAc,EAAE,CAAC,CAAC,EAAE;AACtF,CAAC,CAAC;AACF;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,iBAAiB,CAAC,SAAS,CAAC,SAAS,GAAG,SAAS,KAAK,EAAE;AACpG,EAAEJ,cAAI,CAAC,OAAO,CAAC,eAAe,CAAC,IAAI,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;AAC/C,CAAC,CAAC;AACF;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,iBAAiB,CAAC,SAAS,CAAC,WAAW,GAAG,WAAW;AACjG,EAAE,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;AAC5B,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,iBAAiB,CAAC,SAAS,CAAC,SAAS,GAAG,WAAW;AAC/F,EAAE,OAAOA,cAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,IAAI,CAAC;AAChD,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,iBAAiB,CAAC,SAAS,CAAC,YAAY,GAAG,WAAW;AAClG,EAAE;AACF,IAAIA,cAAI,CAAC,OAAO,CAAC,eAAe,CAAC,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,EAAE,CAAC,CAAC,EAAE;AAClG,CAAC,CAAC;AACF;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,iBAAiB,CAAC,SAAS,CAAC,YAAY,GAAG,SAAS,KAAK,EAAE;AACvG,EAAEA,cAAI,CAAC,OAAO,CAAC,eAAe,CAAC,IAAI,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;AAC/C,CAAC,CAAC;AACF;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,iBAAiB,CAAC,SAAS,CAAC,cAAc,GAAG,WAAW;AACpG,EAAE,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;AAC/B,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,iBAAiB,CAAC,SAAS,CAAC,YAAY,GAAG,WAAW;AAClG,EAAE,OAAOA,cAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,IAAI,CAAC;AAChD,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,GAAG,SAAS,QAAQ,EAAE;AAC3E,EAAEA,cAAI,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;AAC7D,CAAC,CAAC;AACF,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,EAAEA,cAAI,CAAC,OAAO,CAAC,CAAC;AACnF,IAAI,IAAI,CAAC,KAAK,IAAI,CAAC,QAAQ,EAAE;AAC7B,EAAE,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,WAAW,GAAG,uDAAuD,CAAC;AAC9H,CAAC;AACD;AACA;AACA,IAAIA,cAAI,CAAC,OAAO,CAAC,kBAAkB,EAAE;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,SAAS,CAAC,QAAQ,GAAG,SAAS,mBAAmB,EAAE;AACzG,EAAE,OAAO,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,mBAAmB,EAAE,IAAI,CAAC,CAAC;AACnG,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,GAAG,SAAS,eAAe,EAAE,GAAG,EAAE;AAChG,MAAS,GAAG,GAAG;AACf;AACA,IAAI;AACJ;AACA,EAAE,IAAI,eAAe,EAAE;AACvB,IAAI,GAAG,CAAC,oBAAoB,GAAG,GAAG,CAAC;AACnC,GAAG;AACH,EAAE,OAAO,GAAG,CAAC;AACb,CAAC,CAAC;AACF,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,iBAAiB,GAAG,SAAS,KAAK,EAAE;AAC1F,EAAE,IAAI,MAAM,GAAG,IAAIA,cAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;AAC5C,EAAE,IAAI,GAAG,GAAG,IAAI,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC;AACtE,EAAE,OAAO,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,2BAA2B,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;AACxG,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,2BAA2B,GAAG,SAAS,GAAG,EAAE,MAAM,EAAE;AAC1G,EAAE,OAAO,MAAM,CAAC,SAAS,EAAE,EAAE;AAC7B,IAAI,IAAI,MAAM,CAAC,UAAU,EAAE,EAAE;AAC7B,MAAM,MAAM;AACZ,KAAK;AACL,IAAI,IAAI,KAAK,GAAG,MAAM,CAAC,cAAc,EAAE,CAAC;AACxC,IAAI,QAAQ,KAAK;AACjB,IAAI;AACJ,MAAM,MAAM,CAAC,SAAS,EAAE,CAAC;AACzB,MAAM,MAAM;AACZ,KAAK;AACL,GAAG;AACH,EAAE,OAAO,GAAG,CAAC;AACb,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,SAAS,CAAC,eAAe,GAAG,WAAW;AAC7F,EAAE,IAAI,MAAM,GAAG,IAAIA,cAAI,CAAC,YAAY,EAAE,CAAC;AACvC,EAAE,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,uBAAuB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;AAC9F,EAAE,OAAO,MAAM,CAAC,eAAe,EAAE,CAAC;AAClC,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,uBAAuB,GAAG,SAAS,OAAO,EAAE,MAAM,EAAE;AAE1G,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,aAAa,GAAG,SAAS,QAAQ,EAAE;AAC/E,EAAEA,cAAI,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,aAAa,CAAC,eAAe,EAAE,IAAI,CAAC,CAAC;AAClI,CAAC,CAAC;AACF,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,aAAa,EAAEA,cAAI,CAAC,OAAO,CAAC,CAAC;AACvF,IAAI,IAAI,CAAC,KAAK,IAAI,CAAC,QAAQ,EAAE;AAC7B,EAAE,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,aAAa,CAAC,WAAW,GAAG,2DAA2D,CAAC;AACtI,CAAC;AACD;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,aAAa,CAAC,eAAe,GAAG,CAAC,CAAC,CAAC,CAAC;AAChF;AACA;AACA;AACA,IAAIA,cAAI,CAAC,OAAO,CAAC,kBAAkB,EAAE;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,aAAa,CAAC,SAAS,CAAC,QAAQ,GAAG,SAAS,mBAAmB,EAAE;AAC7G,EAAE,OAAO,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,mBAAmB,EAAE,IAAI,CAAC,CAAC;AACvG,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,aAAa,CAAC,QAAQ,GAAG,SAAS,eAAe,EAAE,GAAG,EAAE;AACpG,MAAS,GAAG,GAAG;AACf,IAAI,MAAM,EAAEA,cAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;AACxD,IAAI,QAAQ,EAAEA,cAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC,GAAG,EAAE,CAAC,EAAE,KAAK,CAAC;AAC7D,IAAI,eAAe,EAAEA,cAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,GAAG,EAAE,CAAC,CAAC;AAC1D,IAAI,UAAU,EAAEA,cAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC,GAAG,EAAE,CAAC,EAAE,KAAK,CAAC;AAC/D,IAAI,iBAAiB,EAAEA,cAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC,GAAG,EAAE,CAAC,EAAE,KAAK,CAAC;AACtE,IAAI;AACJ;AACA,EAAE,IAAI,eAAe,EAAE;AACvB,IAAI,GAAG,CAAC,oBAAoB,GAAG,GAAG,CAAC;AACnC,GAAG;AACH,EAAE,OAAO,GAAG,CAAC;AACb,CAAC,CAAC;AACF,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,aAAa,CAAC,iBAAiB,GAAG,SAAS,KAAK,EAAE;AAC9F,EAAE,IAAI,MAAM,GAAG,IAAIA,cAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;AAC5C,EAAE,IAAI,GAAG,GAAG,IAAI,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,aAAa,CAAC;AAC1E,EAAE,OAAO,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,aAAa,CAAC,2BAA2B,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;AAC5G,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,aAAa,CAAC,2BAA2B,GAAG,SAAS,GAAG,EAAE,MAAM,EAAE;AAC9G,EAAE,OAAO,MAAM,CAAC,SAAS,EAAE,EAAE;AAC7B,IAAI,IAAI,MAAM,CAAC,UAAU,EAAE,EAAE;AAC7B,MAAM,MAAM;AACZ,KAAK;AACL,IAAI,IAAI,KAAK,GAAG,MAAM,CAAC,cAAc,EAAE,CAAC;AACxC,IAAI,QAAQ,KAAK;AACjB,IAAI,KAAK,CAAC;AACV,MAAM,IAAI,KAAK,0BAA0B,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC;AAC9D,MAAM,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;AAC3B,MAAM,MAAM;AACZ,IAAI,KAAK,CAAC;AACV,MAAM,IAAI,KAAK,2BAA2B,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;AAC7D,MAAM,GAAG,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;AAC7B,MAAM,MAAM;AACZ,IAAI,KAAK,CAAC;AACV,MAAM,IAAI,KAAK,0BAA0B,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC;AAC9D,MAAM,GAAG,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;AAChC,MAAM,MAAM;AACZ,IAAI,KAAK,CAAC;AACV,MAAM,IAAI,KAAK,2BAA2B,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;AAC7D,MAAM,GAAG,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;AAC/B,MAAM,MAAM;AACZ,IAAI,KAAK,CAAC;AACV,MAAM,IAAI,KAAK,2BAA2B,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;AAC7D,MAAM,GAAG,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAC;AACtC,MAAM,MAAM;AACZ,IAAI;AACJ,MAAM,MAAM,CAAC,SAAS,EAAE,CAAC;AACzB,MAAM,MAAM;AACZ,KAAK;AACL,GAAG;AACH,EAAE,OAAO,GAAG,CAAC;AACb,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,aAAa,CAAC,SAAS,CAAC,eAAe,GAAG,WAAW;AACjG,EAAE,IAAI,MAAM,GAAG,IAAIA,cAAI,CAAC,YAAY,EAAE,CAAC;AACvC,EAAE,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,aAAa,CAAC,uBAAuB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;AAClG,EAAE,OAAO,MAAM,CAAC,eAAe,EAAE,CAAC;AAClC,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,aAAa,CAAC,uBAAuB,GAAG,SAAS,OAAO,EAAE,MAAM,EAAE;AAC9G,EAAE,IAAI,CAAC,GAAG,SAAS,CAAC;AACpB,EAAE,CAAC,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;AAC1B,EAAE,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE;AACpB,IAAI,MAAM,CAAC,WAAW;AACtB,MAAM,CAAC;AACP,MAAM,CAAC;AACP,KAAK,CAAC;AACN,GAAG;AACH,EAAE,CAAC,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;AAC5B,EAAE,IAAI,CAAC,EAAE;AACT,IAAI,MAAM,CAAC,SAAS;AACpB,MAAM,CAAC;AACP,MAAM,CAAC;AACP,KAAK,CAAC;AACN,GAAG;AACH,EAAE,CAAC,GAAG,OAAO,CAAC,kBAAkB,EAAE,CAAC;AACnC,EAAE,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE;AACpB,IAAI,MAAM,CAAC,mBAAmB;AAC9B,MAAM,CAAC;AACP,MAAM,CAAC;AACP,KAAK,CAAC;AACN,GAAG;AACH,EAAE,CAAC,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;AAC9B,EAAE,IAAI,CAAC,EAAE;AACT,IAAI,MAAM,CAAC,SAAS;AACpB,MAAM,CAAC;AACP,MAAM,CAAC;AACP,KAAK,CAAC;AACN,GAAG;AACH,EAAE,CAAC,GAAG,OAAO,CAAC,oBAAoB,EAAE,CAAC;AACrC,EAAE,IAAI,CAAC,EAAE;AACT,IAAI,MAAM,CAAC,SAAS;AACpB,MAAM,CAAC;AACP,MAAM,CAAC;AACP,KAAK,CAAC;AACN,GAAG;AACH,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,aAAa,CAAC,SAAS,CAAC,SAAS,GAAG,WAAW;AAC3F,EAAE,8BAA8BA,cAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE;AAC/E,CAAC,CAAC;AACF;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,aAAa,CAAC,SAAS,CAAC,SAAS,GAAG,SAAS,KAAK,EAAE;AAChG,EAAEA,cAAI,CAAC,OAAO,CAAC,oBAAoB,CAAC,IAAI,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;AACpD,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,aAAa,CAAC,SAAS,CAAC,WAAW,GAAG,WAAW;AAC7F,EAAE,+BAA+BA,cAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC,IAAI,EAAE,CAAC,EAAE,KAAK,CAAC,EAAE;AACnF,CAAC,CAAC;AACF;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,aAAa,CAAC,SAAS,CAAC,WAAW,GAAG,SAAS,KAAK,EAAE;AAClG,EAAEA,cAAI,CAAC,OAAO,CAAC,qBAAqB,CAAC,IAAI,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;AACrD,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,aAAa,CAAC,SAAS,CAAC,kBAAkB,GAAG,WAAW;AACpG,EAAE,sCAAsCA,cAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE;AAChF,CAAC,CAAC;AACF;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,aAAa,CAAC,SAAS,CAAC,kBAAkB,GAAG,SAAS,KAAK,EAAE;AACzG,EAAEA,cAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC;AAC9C,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,aAAa,CAAC,SAAS,CAAC,cAAc,GAAG,SAAS,KAAK,EAAE,SAAS,EAAE;AAChH,EAAEA,cAAI,CAAC,OAAO,CAAC,kBAAkB,CAAC,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC;AAC7D,CAAC,CAAC;AACF;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,aAAa,CAAC,SAAS,CAAC,oBAAoB,GAAG,WAAW;AACtG,EAAE,IAAI,CAAC,kBAAkB,CAAC,EAAE,CAAC,CAAC;AAC9B,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,aAAa,CAAC,SAAS,CAAC,aAAa,GAAG,WAAW;AAC/F,EAAE,+BAA+BA,cAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC,IAAI,EAAE,CAAC,EAAE,KAAK,CAAC,EAAE;AACnF,CAAC,CAAC;AACF;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,aAAa,CAAC,SAAS,CAAC,aAAa,GAAG,SAAS,KAAK,EAAE;AACpG,EAAEA,cAAI,CAAC,OAAO,CAAC,qBAAqB,CAAC,IAAI,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;AACrD,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,aAAa,CAAC,SAAS,CAAC,oBAAoB,GAAG,WAAW;AACtG,EAAE,+BAA+BA,cAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC,IAAI,EAAE,CAAC,EAAE,KAAK,CAAC,EAAE;AACnF,CAAC,CAAC;AACF;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,aAAa,CAAC,SAAS,CAAC,oBAAoB,GAAG,SAAS,KAAK,EAAE;AAC3G,EAAEA,cAAI,CAAC,OAAO,CAAC,qBAAqB,CAAC,IAAI,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;AACrD,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,cAAc,GAAG,SAAS,QAAQ,EAAE;AAChF,EAAEA,cAAI,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;AAC7D,CAAC,CAAC;AACF,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,cAAc,EAAEA,cAAI,CAAC,OAAO,CAAC,CAAC;AACxF,IAAI,IAAI,CAAC,KAAK,IAAI,CAAC,QAAQ,EAAE;AAC7B,EAAE,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,cAAc,CAAC,WAAW,GAAG,4DAA4D,CAAC;AACxI,CAAC;AACD;AACA;AACA,IAAIA,cAAI,CAAC,OAAO,CAAC,kBAAkB,EAAE;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,cAAc,CAAC,SAAS,CAAC,QAAQ,GAAG,SAAS,mBAAmB,EAAE;AAC9G,EAAE,OAAO,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,cAAc,CAAC,QAAQ,CAAC,mBAAmB,EAAE,IAAI,CAAC,CAAC;AACxG,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,cAAc,CAAC,QAAQ,GAAG,SAAS,eAAe,EAAE,GAAG,EAAE;AACrG,MAAS,GAAG,GAAG;AACf,IAAI,eAAe,EAAEA,cAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;AAChE,IAAI;AACJ;AACA,EAAE,IAAI,eAAe,EAAE;AACvB,IAAI,GAAG,CAAC,oBAAoB,GAAG,GAAG,CAAC;AACnC,GAAG;AACH,EAAE,OAAO,GAAG,CAAC;AACb,CAAC,CAAC;AACF,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,cAAc,CAAC,iBAAiB,GAAG,SAAS,KAAK,EAAE;AAC/F,EAAE,IAAI,MAAM,GAAG,IAAIA,cAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;AAC5C,EAAE,IAAI,GAAG,GAAG,IAAI,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,cAAc,CAAC;AAC3E,EAAE,OAAO,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,cAAc,CAAC,2BAA2B,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;AAC7G,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,cAAc,CAAC,2BAA2B,GAAG,SAAS,GAAG,EAAE,MAAM,EAAE;AAC/G,EAAE,OAAO,MAAM,CAAC,SAAS,EAAE,EAAE;AAC7B,IAAI,IAAI,MAAM,CAAC,UAAU,EAAE,EAAE;AAC7B,MAAM,MAAM;AACZ,KAAK;AACL,IAAI,IAAI,KAAK,GAAG,MAAM,CAAC,cAAc,EAAE,CAAC;AACxC,IAAI,QAAQ,KAAK;AACjB,IAAI,KAAK,CAAC;AACV,MAAM,IAAI,KAAK,0BAA0B,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC;AAC9D,MAAM,GAAG,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;AACpC,MAAM,MAAM;AACZ,IAAI;AACJ,MAAM,MAAM,CAAC,SAAS,EAAE,CAAC;AACzB,MAAM,MAAM;AACZ,KAAK;AACL,GAAG;AACH,EAAE,OAAO,GAAG,CAAC;AACb,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,cAAc,CAAC,SAAS,CAAC,eAAe,GAAG,WAAW;AAClG,EAAE,IAAI,MAAM,GAAG,IAAIA,cAAI,CAAC,YAAY,EAAE,CAAC;AACvC,EAAE,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,cAAc,CAAC,uBAAuB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;AACnG,EAAE,OAAO,MAAM,CAAC,eAAe,EAAE,CAAC;AAClC,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,cAAc,CAAC,uBAAuB,GAAG,SAAS,OAAO,EAAE,MAAM,EAAE;AAC/G,EAAE,IAAI,CAAC,GAAG,SAAS,CAAC;AACpB,EAAE,CAAC,GAAG,OAAO,CAAC,kBAAkB,EAAE,CAAC;AACnC,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE;AACf,IAAI,MAAM,CAAC,WAAW;AACtB,MAAM,CAAC;AACP,MAAM,CAAC;AACP,KAAK,CAAC;AACN,GAAG;AACH,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,cAAc,CAAC,SAAS,CAAC,kBAAkB,GAAG,WAAW;AACrG,EAAE,8BAA8BA,cAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE;AAC9E,CAAC,CAAC;AACF;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,cAAc,CAAC,SAAS,CAAC,kBAAkB,GAAG,SAAS,KAAK,EAAE;AAC1G,EAAEA,cAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,IAAI,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;AACjD,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,iBAAiB,GAAG,SAAS,QAAQ,EAAE;AACnF,EAAEA,cAAI,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;AAC7D,CAAC,CAAC;AACF,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,iBAAiB,EAAEA,cAAI,CAAC,OAAO,CAAC,CAAC;AAC3F,IAAI,IAAI,CAAC,KAAK,IAAI,CAAC,QAAQ,EAAE;AAC7B,EAAE,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,iBAAiB,CAAC,WAAW,GAAG,+DAA+D,CAAC;AAC9I,CAAC;AACD;AACA;AACA,IAAIA,cAAI,CAAC,OAAO,CAAC,kBAAkB,EAAE;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,iBAAiB,CAAC,SAAS,CAAC,QAAQ,GAAG,SAAS,mBAAmB,EAAE;AACjH,EAAE,OAAO,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,iBAAiB,CAAC,QAAQ,CAAC,mBAAmB,EAAE,IAAI,CAAC,CAAC;AAC3G,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,iBAAiB,CAAC,QAAQ,GAAG,SAAS,eAAe,EAAE,GAAG,EAAE;AACxG,EAAE,IAAI,CAAC,EAAE,GAAG,GAAG;AACf,IAAI,MAAM,EAAE,CAAC,CAAC,GAAG,GAAG,CAAC,SAAS,EAAE,KAAKC,OAAmB,CAAC,IAAI,CAAC,QAAQ,CAAC,eAAe,EAAE,CAAC,CAAC;AAC1F,GAAG,CAAC;AACJ;AACA,EAAE,IAAI,eAAe,EAAE;AACvB,IAAI,GAAG,CAAC,oBAAoB,GAAG,GAAG,CAAC;AACnC,GAAG;AACH,EAAE,OAAO,GAAG,CAAC;AACb,CAAC,CAAC;AACF,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,iBAAiB,CAAC,iBAAiB,GAAG,SAAS,KAAK,EAAE;AAClG,EAAE,IAAI,MAAM,GAAG,IAAID,cAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;AAC5C,EAAE,IAAI,GAAG,GAAG,IAAI,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,iBAAiB,CAAC;AAC9E,EAAE,OAAO,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,iBAAiB,CAAC,2BAA2B,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;AAChH,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,iBAAiB,CAAC,2BAA2B,GAAG,SAAS,GAAG,EAAE,MAAM,EAAE;AAClH,EAAE,OAAO,MAAM,CAAC,SAAS,EAAE,EAAE;AAC7B,IAAI,IAAI,MAAM,CAAC,UAAU,EAAE,EAAE;AAC7B,MAAM,MAAM;AACZ,KAAK;AACL,IAAI,IAAI,KAAK,GAAG,MAAM,CAAC,cAAc,EAAE,CAAC;AACxC,IAAI,QAAQ,KAAK;AACjB,IAAI,KAAK,CAAC;AACV,MAAM,IAAI,KAAK,GAAG,IAAIC,OAAmB,CAAC,IAAI,CAAC;AAC/C,MAAM,MAAM,CAAC,WAAW,CAAC,KAAK,CAACA,OAAmB,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;AACrF,MAAM,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;AAC3B,MAAM,MAAM;AACZ,IAAI;AACJ,MAAM,MAAM,CAAC,SAAS,EAAE,CAAC;AACzB,MAAM,MAAM;AACZ,KAAK;AACL,GAAG;AACH,EAAE,OAAO,GAAG,CAAC;AACb,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,iBAAiB,CAAC,SAAS,CAAC,eAAe,GAAG,WAAW;AACrG,EAAE,IAAI,MAAM,GAAG,IAAID,cAAI,CAAC,YAAY,EAAE,CAAC;AACvC,EAAE,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,iBAAiB,CAAC,uBAAuB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;AACtG,EAAE,OAAO,MAAM,CAAC,eAAe,EAAE,CAAC;AAClC,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,iBAAiB,CAAC,uBAAuB,GAAG,SAAS,OAAO,EAAE,MAAM,EAAE;AAClH,EAAE,IAAI,CAAC,GAAG,SAAS,CAAC;AACpB,EAAE,CAAC,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;AAC1B,EAAE,IAAI,CAAC,IAAI,IAAI,EAAE;AACjB,IAAI,MAAM,CAAC,YAAY;AACvB,MAAM,CAAC;AACP,MAAM,CAAC;AACP,MAAMC,OAAmB,CAAC,IAAI,CAAC,uBAAuB;AACtD,KAAK,CAAC;AACN,GAAG;AACH,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,iBAAiB,CAAC,SAAS,CAAC,SAAS,GAAG,WAAW;AAC/F,EAAE;AACF,IAAID,cAAI,CAAC,OAAO,CAAC,eAAe,CAAC,IAAI,EAAEC,OAAmB,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE;AACrE,CAAC,CAAC;AACF;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,iBAAiB,CAAC,SAAS,CAAC,SAAS,GAAG,SAAS,KAAK,EAAE;AACpG,EAAED,cAAI,CAAC,OAAO,CAAC,eAAe,CAAC,IAAI,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;AAC/C,CAAC,CAAC;AACF;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,iBAAiB,CAAC,SAAS,CAAC,WAAW,GAAG,WAAW;AACjG,EAAE,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;AAC5B,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,iBAAiB,CAAC,SAAS,CAAC,SAAS,GAAG,WAAW;AAC/F,EAAE,OAAOA,cAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,IAAI,CAAC;AAChD,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,kBAAkB,GAAG,SAAS,QAAQ,EAAE;AACpF,EAAEA,cAAI,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;AAC7D,CAAC,CAAC;AACF,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,kBAAkB,EAAEA,cAAI,CAAC,OAAO,CAAC,CAAC;AAC5F,IAAI,IAAI,CAAC,KAAK,IAAI,CAAC,QAAQ,EAAE;AAC7B,EAAE,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,kBAAkB,CAAC,WAAW,GAAG,gEAAgE,CAAC;AAChJ,CAAC;AACD;AACA;AACA,IAAIA,cAAI,CAAC,OAAO,CAAC,kBAAkB,EAAE;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,kBAAkB,CAAC,SAAS,CAAC,QAAQ,GAAG,SAAS,mBAAmB,EAAE;AAClH,EAAE,OAAO,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,kBAAkB,CAAC,QAAQ,CAAC,mBAAmB,EAAE,IAAI,CAAC,CAAC;AAC5G,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,kBAAkB,CAAC,QAAQ,GAAG,SAAS,eAAe,EAAE,GAAG,EAAE;AACzG,EAAE,IAAI,CAAC,EAAE,GAAG,GAAG;AACf,IAAI,YAAY,EAAE,CAAC,CAAC,GAAG,GAAG,CAAC,eAAe,EAAE,KAAKE,WAA2B,CAAC,WAAW,CAAC,QAAQ,CAAC,eAAe,EAAE,CAAC,CAAC;AACrH,IAAI,cAAc,EAAEF,cAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC,GAAG,EAAE,CAAC,EAAE,KAAK,CAAC;AACnE,GAAG,CAAC;AACJ;AACA,EAAE,IAAI,eAAe,EAAE;AACvB,IAAI,GAAG,CAAC,oBAAoB,GAAG,GAAG,CAAC;AACnC,GAAG;AACH,EAAE,OAAO,GAAG,CAAC;AACb,CAAC,CAAC;AACF,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,kBAAkB,CAAC,iBAAiB,GAAG,SAAS,KAAK,EAAE;AACnG,EAAE,IAAI,MAAM,GAAG,IAAIA,cAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;AAC5C,EAAE,IAAI,GAAG,GAAG,IAAI,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,kBAAkB,CAAC;AAC/E,EAAE,OAAO,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,kBAAkB,CAAC,2BAA2B,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;AACjH,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,kBAAkB,CAAC,2BAA2B,GAAG,SAAS,GAAG,EAAE,MAAM,EAAE;AACnH,EAAE,OAAO,MAAM,CAAC,SAAS,EAAE,EAAE;AAC7B,IAAI,IAAI,MAAM,CAAC,UAAU,EAAE,EAAE;AAC7B,MAAM,MAAM;AACZ,KAAK;AACL,IAAI,IAAI,KAAK,GAAG,MAAM,CAAC,cAAc,EAAE,CAAC;AACxC,IAAI,QAAQ,KAAK;AACjB,IAAI,KAAK,CAAC;AACV,MAAM,IAAI,KAAK,GAAG,IAAIE,WAA2B,CAAC,WAAW,CAAC;AAC9D,MAAM,MAAM,CAAC,WAAW,CAAC,KAAK,CAACA,WAA2B,CAAC,WAAW,CAAC,2BAA2B,CAAC,CAAC;AACpG,MAAM,GAAG,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;AACjC,MAAM,MAAM;AACZ,IAAI,KAAK,CAAC;AACV,MAAM,IAAI,KAAK,2BAA2B,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;AAC7D,MAAM,GAAG,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;AACnC,MAAM,MAAM;AACZ,IAAI;AACJ,MAAM,MAAM,CAAC,SAAS,EAAE,CAAC;AACzB,MAAM,MAAM;AACZ,KAAK;AACL,GAAG;AACH,EAAE,OAAO,GAAG,CAAC;AACb,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,kBAAkB,CAAC,SAAS,CAAC,eAAe,GAAG,WAAW;AACtG,EAAE,IAAI,MAAM,GAAG,IAAIF,cAAI,CAAC,YAAY,EAAE,CAAC;AACvC,EAAE,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,kBAAkB,CAAC,uBAAuB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;AACvG,EAAE,OAAO,MAAM,CAAC,eAAe,EAAE,CAAC;AAClC,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,kBAAkB,CAAC,uBAAuB,GAAG,SAAS,OAAO,EAAE,MAAM,EAAE;AACnH,EAAE,IAAI,CAAC,GAAG,SAAS,CAAC;AACpB,EAAE,CAAC,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC;AAChC,EAAE,IAAI,CAAC,IAAI,IAAI,EAAE;AACjB,IAAI,MAAM,CAAC,YAAY;AACvB,MAAM,CAAC;AACP,MAAM,CAAC;AACP,MAAME,WAA2B,CAAC,WAAW,CAAC,uBAAuB;AACrE,KAAK,CAAC;AACN,GAAG;AACH,EAAE,CAAC,GAAG,OAAO,CAAC,iBAAiB,EAAE,CAAC;AAClC,EAAE,IAAI,CAAC,EAAE;AACT,IAAI,MAAM,CAAC,SAAS;AACpB,MAAM,CAAC;AACP,MAAM,CAAC;AACP,KAAK,CAAC;AACN,GAAG;AACH,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,kBAAkB,CAAC,SAAS,CAAC,eAAe,GAAG,WAAW;AACtG,EAAE;AACF,IAAIF,cAAI,CAAC,OAAO,CAAC,eAAe,CAAC,IAAI,EAAEE,WAA2B,CAAC,WAAW,EAAE,CAAC,CAAC,EAAE;AACpF,CAAC,CAAC;AACF;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,kBAAkB,CAAC,SAAS,CAAC,eAAe,GAAG,SAAS,KAAK,EAAE;AAC3G,EAAEF,cAAI,CAAC,OAAO,CAAC,eAAe,CAAC,IAAI,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;AAC/C,CAAC,CAAC;AACF;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,kBAAkB,CAAC,SAAS,CAAC,iBAAiB,GAAG,WAAW;AACxG,EAAE,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC;AAClC,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,kBAAkB,CAAC,SAAS,CAAC,eAAe,GAAG,WAAW;AACtG,EAAE,OAAOA,cAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,IAAI,CAAC;AAChD,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,kBAAkB,CAAC,SAAS,CAAC,iBAAiB,GAAG,WAAW;AACxG,EAAE,+BAA+BA,cAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC,IAAI,EAAE,CAAC,EAAE,KAAK,CAAC,EAAE;AACnF,CAAC,CAAC;AACF;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,kBAAkB,CAAC,SAAS,CAAC,iBAAiB,GAAG,SAAS,KAAK,EAAE;AAC7G,EAAEA,cAAI,CAAC,OAAO,CAAC,qBAAqB,CAAC,IAAI,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;AACrD,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,gBAAgB,GAAG,SAAS,QAAQ,EAAE;AAClF,EAAEA,cAAI,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;AAC7D,CAAC,CAAC;AACF,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,gBAAgB,EAAEA,cAAI,CAAC,OAAO,CAAC,CAAC;AAC1F,IAAI,IAAI,CAAC,KAAK,IAAI,CAAC,QAAQ,EAAE;AAC7B,EAAE,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,gBAAgB,CAAC,WAAW,GAAG,8DAA8D,CAAC;AAC5I,CAAC;AACD;AACA;AACA,IAAIA,cAAI,CAAC,OAAO,CAAC,kBAAkB,EAAE;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,gBAAgB,CAAC,SAAS,CAAC,QAAQ,GAAG,SAAS,mBAAmB,EAAE;AAChH,EAAE,OAAO,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,gBAAgB,CAAC,QAAQ,CAAC,mBAAmB,EAAE,IAAI,CAAC,CAAC;AAC1G,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,gBAAgB,CAAC,QAAQ,GAAG,SAAS,eAAe,EAAE,GAAG,EAAE;AACvG,MAAS,GAAG,GAAG;AACf;AACA,IAAI;AACJ;AACA,EAAE,IAAI,eAAe,EAAE;AACvB,IAAI,GAAG,CAAC,oBAAoB,GAAG,GAAG,CAAC;AACnC,GAAG;AACH,EAAE,OAAO,GAAG,CAAC;AACb,CAAC,CAAC;AACF,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,gBAAgB,CAAC,iBAAiB,GAAG,SAAS,KAAK,EAAE;AACjG,EAAE,IAAI,MAAM,GAAG,IAAIA,cAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;AAC5C,EAAE,IAAI,GAAG,GAAG,IAAI,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,gBAAgB,CAAC;AAC7E,EAAE,OAAO,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,gBAAgB,CAAC,2BAA2B,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;AAC/G,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,gBAAgB,CAAC,2BAA2B,GAAG,SAAS,GAAG,EAAE,MAAM,EAAE;AACjH,EAAE,OAAO,MAAM,CAAC,SAAS,EAAE,EAAE;AAC7B,IAAI,IAAI,MAAM,CAAC,UAAU,EAAE,EAAE;AAC7B,MAAM,MAAM;AACZ,KAAK;AACL,IAAI,IAAI,KAAK,GAAG,MAAM,CAAC,cAAc,EAAE,CAAC;AACxC,IAAI,QAAQ,KAAK;AACjB,IAAI;AACJ,MAAM,MAAM,CAAC,SAAS,EAAE,CAAC;AACzB,MAAM,MAAM;AACZ,KAAK;AACL,GAAG;AACH,EAAE,OAAO,GAAG,CAAC;AACb,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,gBAAgB,CAAC,SAAS,CAAC,eAAe,GAAG,WAAW;AACpG,EAAE,IAAI,MAAM,GAAG,IAAIA,cAAI,CAAC,YAAY,EAAE,CAAC;AACvC,EAAE,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,gBAAgB,CAAC,uBAAuB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;AACrG,EAAE,OAAO,MAAM,CAAC,eAAe,EAAE,CAAC;AAClC,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,gBAAgB,CAAC,uBAAuB,GAAG,SAAS,OAAO,EAAE,MAAM,EAAE;AAEjH,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,iBAAiB,GAAG,SAAS,QAAQ,EAAE;AACnF,EAAEA,cAAI,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;AAC7D,CAAC,CAAC;AACF,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,iBAAiB,EAAEA,cAAI,CAAC,OAAO,CAAC,CAAC;AAC3F,IAAI,IAAI,CAAC,KAAK,IAAI,CAAC,QAAQ,EAAE;AAC7B,EAAE,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,iBAAiB,CAAC,WAAW,GAAG,+DAA+D,CAAC;AAC9I,CAAC;AACD;AACA;AACA,IAAIA,cAAI,CAAC,OAAO,CAAC,kBAAkB,EAAE;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,iBAAiB,CAAC,SAAS,CAAC,QAAQ,GAAG,SAAS,mBAAmB,EAAE;AACjH,EAAE,OAAO,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,iBAAiB,CAAC,QAAQ,CAAC,mBAAmB,EAAE,IAAI,CAAC,CAAC;AAC3G,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,iBAAiB,CAAC,QAAQ,GAAG,SAAS,eAAe,EAAE,GAAG,EAAE;AACxG,MAAS,GAAG,GAAG;AACf;AACA,IAAI;AACJ;AACA,EAAE,IAAI,eAAe,EAAE;AACvB,IAAI,GAAG,CAAC,oBAAoB,GAAG,GAAG,CAAC;AACnC,GAAG;AACH,EAAE,OAAO,GAAG,CAAC;AACb,CAAC,CAAC;AACF,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,iBAAiB,CAAC,iBAAiB,GAAG,SAAS,KAAK,EAAE;AAClG,EAAE,IAAI,MAAM,GAAG,IAAIA,cAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;AAC5C,EAAE,IAAI,GAAG,GAAG,IAAI,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,iBAAiB,CAAC;AAC9E,EAAE,OAAO,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,iBAAiB,CAAC,2BAA2B,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;AAChH,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,iBAAiB,CAAC,2BAA2B,GAAG,SAAS,GAAG,EAAE,MAAM,EAAE;AAClH,EAAE,OAAO,MAAM,CAAC,SAAS,EAAE,EAAE;AAC7B,IAAI,IAAI,MAAM,CAAC,UAAU,EAAE,EAAE;AAC7B,MAAM,MAAM;AACZ,KAAK;AACL,IAAI,IAAI,KAAK,GAAG,MAAM,CAAC,cAAc,EAAE,CAAC;AACxC,IAAI,QAAQ,KAAK;AACjB,IAAI;AACJ,MAAM,MAAM,CAAC,SAAS,EAAE,CAAC;AACzB,MAAM,MAAM;AACZ,KAAK;AACL,GAAG;AACH,EAAE,OAAO,GAAG,CAAC;AACb,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,iBAAiB,CAAC,SAAS,CAAC,eAAe,GAAG,WAAW;AACrG,EAAE,IAAI,MAAM,GAAG,IAAIA,cAAI,CAAC,YAAY,EAAE,CAAC;AACvC,EAAE,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,iBAAiB,CAAC,uBAAuB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;AACtG,EAAE,OAAO,MAAM,CAAC,eAAe,EAAE,CAAC;AAClC,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,iBAAiB,CAAC,uBAAuB,GAAG,SAAS,OAAO,EAAE,MAAM,EAAE;AAElH,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,kBAAkB,GAAG,SAAS,QAAQ,EAAE;AACpF,EAAEA,cAAI,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;AAC7D,CAAC,CAAC;AACF,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,kBAAkB,EAAEA,cAAI,CAAC,OAAO,CAAC,CAAC;AAC5F,IAAI,IAAI,CAAC,KAAK,IAAI,CAAC,QAAQ,EAAE;AAC7B,EAAE,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,kBAAkB,CAAC,WAAW,GAAG,gEAAgE,CAAC;AAChJ,CAAC;AACD;AACA;AACA,IAAIA,cAAI,CAAC,OAAO,CAAC,kBAAkB,EAAE;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,kBAAkB,CAAC,SAAS,CAAC,QAAQ,GAAG,SAAS,mBAAmB,EAAE;AAClH,EAAE,OAAO,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,kBAAkB,CAAC,QAAQ,CAAC,mBAAmB,EAAE,IAAI,CAAC,CAAC;AAC5G,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,kBAAkB,CAAC,QAAQ,GAAG,SAAS,eAAe,EAAE,GAAG,EAAE;AACzG,MAAS,GAAG,GAAG;AACf;AACA,IAAI;AACJ;AACA,EAAE,IAAI,eAAe,EAAE;AACvB,IAAI,GAAG,CAAC,oBAAoB,GAAG,GAAG,CAAC;AACnC,GAAG;AACH,EAAE,OAAO,GAAG,CAAC;AACb,CAAC,CAAC;AACF,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,kBAAkB,CAAC,iBAAiB,GAAG,SAAS,KAAK,EAAE;AACnG,EAAE,IAAI,MAAM,GAAG,IAAIA,cAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;AAC5C,EAAE,IAAI,GAAG,GAAG,IAAI,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,kBAAkB,CAAC;AAC/E,EAAE,OAAO,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,kBAAkB,CAAC,2BAA2B,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;AACjH,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,kBAAkB,CAAC,2BAA2B,GAAG,SAAS,GAAG,EAAE,MAAM,EAAE;AACnH,EAAE,OAAO,MAAM,CAAC,SAAS,EAAE,EAAE;AAC7B,IAAI,IAAI,MAAM,CAAC,UAAU,EAAE,EAAE;AAC7B,MAAM,MAAM;AACZ,KAAK;AACL,IAAI,IAAI,KAAK,GAAG,MAAM,CAAC,cAAc,EAAE,CAAC;AACxC,IAAI,QAAQ,KAAK;AACjB,IAAI;AACJ,MAAM,MAAM,CAAC,SAAS,EAAE,CAAC;AACzB,MAAM,MAAM;AACZ,KAAK;AACL,GAAG;AACH,EAAE,OAAO,GAAG,CAAC;AACb,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,kBAAkB,CAAC,SAAS,CAAC,eAAe,GAAG,WAAW;AACtG,EAAE,IAAI,MAAM,GAAG,IAAIA,cAAI,CAAC,YAAY,EAAE,CAAC;AACvC,EAAE,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,kBAAkB,CAAC,uBAAuB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;AACvG,EAAE,OAAO,MAAM,CAAC,eAAe,EAAE,CAAC;AAClC,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,kBAAkB,CAAC,uBAAuB,GAAG,SAAS,OAAO,EAAE,MAAM,EAAE;AAEnH,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,mBAAmB,GAAG,SAAS,QAAQ,EAAE;AACrF,EAAEA,cAAI,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;AAC7D,CAAC,CAAC;AACF,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,mBAAmB,EAAEA,cAAI,CAAC,OAAO,CAAC,CAAC;AAC7F,IAAI,IAAI,CAAC,KAAK,IAAI,CAAC,QAAQ,EAAE;AAC7B,EAAE,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,mBAAmB,CAAC,WAAW,GAAG,iEAAiE,CAAC;AAClJ,CAAC;AACD;AACA;AACA,IAAIA,cAAI,CAAC,OAAO,CAAC,kBAAkB,EAAE;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,mBAAmB,CAAC,SAAS,CAAC,QAAQ,GAAG,SAAS,mBAAmB,EAAE;AACnH,EAAE,OAAO,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,mBAAmB,CAAC,QAAQ,CAAC,mBAAmB,EAAE,IAAI,CAAC,CAAC;AAC7G,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,mBAAmB,CAAC,QAAQ,GAAG,SAAS,eAAe,EAAE,GAAG,EAAE;AAC1G,MAAS,GAAG,GAAG;AACf;AACA,IAAI;AACJ;AACA,EAAE,IAAI,eAAe,EAAE;AACvB,IAAI,GAAG,CAAC,oBAAoB,GAAG,GAAG,CAAC;AACnC,GAAG;AACH,EAAE,OAAO,GAAG,CAAC;AACb,CAAC,CAAC;AACF,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,mBAAmB,CAAC,iBAAiB,GAAG,SAAS,KAAK,EAAE;AACpG,EAAE,IAAI,MAAM,GAAG,IAAIA,cAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;AAC5C,EAAE,IAAI,GAAG,GAAG,IAAI,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,mBAAmB,CAAC;AAChF,EAAE,OAAO,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,mBAAmB,CAAC,2BAA2B,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;AAClH,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,mBAAmB,CAAC,2BAA2B,GAAG,SAAS,GAAG,EAAE,MAAM,EAAE;AACpH,EAAE,OAAO,MAAM,CAAC,SAAS,EAAE,EAAE;AAC7B,IAAI,IAAI,MAAM,CAAC,UAAU,EAAE,EAAE;AAC7B,MAAM,MAAM;AACZ,KAAK;AACL,IAAI,IAAI,KAAK,GAAG,MAAM,CAAC,cAAc,EAAE,CAAC;AACxC,IAAI,QAAQ,KAAK;AACjB,IAAI;AACJ,MAAM,MAAM,CAAC,SAAS,EAAE,CAAC;AACzB,MAAM,MAAM;AACZ,KAAK;AACL,GAAG;AACH,EAAE,OAAO,GAAG,CAAC;AACb,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,mBAAmB,CAAC,SAAS,CAAC,eAAe,GAAG,WAAW;AACvG,EAAE,IAAI,MAAM,GAAG,IAAIA,cAAI,CAAC,YAAY,EAAE,CAAC;AACvC,EAAE,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,mBAAmB,CAAC,uBAAuB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;AACxG,EAAE,OAAO,MAAM,CAAC,eAAe,EAAE,CAAC;AAClC,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,mBAAmB,CAAC,uBAAuB,GAAG,SAAS,OAAO,EAAE,MAAM,EAAE;AAEpH,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,uBAAuB,GAAG,SAAS,QAAQ,EAAE;AACzF,EAAEA,cAAI,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;AAC7D,CAAC,CAAC;AACF,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,uBAAuB,EAAEA,cAAI,CAAC,OAAO,CAAC,CAAC;AACjG,IAAI,IAAI,CAAC,KAAK,IAAI,CAAC,QAAQ,EAAE;AAC7B,EAAE,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,uBAAuB,CAAC,WAAW,GAAG,qEAAqE,CAAC;AAC1J,CAAC;AACD;AACA;AACA,IAAIA,cAAI,CAAC,OAAO,CAAC,kBAAkB,EAAE;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,uBAAuB,CAAC,SAAS,CAAC,QAAQ,GAAG,SAAS,mBAAmB,EAAE;AACvH,EAAE,OAAO,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,uBAAuB,CAAC,QAAQ,CAAC,mBAAmB,EAAE,IAAI,CAAC,CAAC;AACjH,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,uBAAuB,CAAC,QAAQ,GAAG,SAAS,eAAe,EAAE,GAAG,EAAE;AAC9G,EAAE,IAAI,CAAC,EAAE,GAAG,GAAG;AACf,IAAI,MAAM,EAAE,CAAC,CAAC,GAAG,GAAG,CAAC,SAAS,EAAE,KAAKC,OAAmB,CAAC,IAAI,CAAC,QAAQ,CAAC,eAAe,EAAE,CAAC,CAAC;AAC1F,GAAG,CAAC;AACJ;AACA,EAAE,IAAI,eAAe,EAAE;AACvB,IAAI,GAAG,CAAC,oBAAoB,GAAG,GAAG,CAAC;AACnC,GAAG;AACH,EAAE,OAAO,GAAG,CAAC;AACb,CAAC,CAAC;AACF,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,uBAAuB,CAAC,iBAAiB,GAAG,SAAS,KAAK,EAAE;AACxG,EAAE,IAAI,MAAM,GAAG,IAAID,cAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;AAC5C,EAAE,IAAI,GAAG,GAAG,IAAI,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,uBAAuB,CAAC;AACpF,EAAE,OAAO,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,uBAAuB,CAAC,2BAA2B,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;AACtH,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,uBAAuB,CAAC,2BAA2B,GAAG,SAAS,GAAG,EAAE,MAAM,EAAE;AACxH,EAAE,OAAO,MAAM,CAAC,SAAS,EAAE,EAAE;AAC7B,IAAI,IAAI,MAAM,CAAC,UAAU,EAAE,EAAE;AAC7B,MAAM,MAAM;AACZ,KAAK;AACL,IAAI,IAAI,KAAK,GAAG,MAAM,CAAC,cAAc,EAAE,CAAC;AACxC,IAAI,QAAQ,KAAK;AACjB,IAAI,KAAK,CAAC;AACV,MAAM,IAAI,KAAK,GAAG,IAAIC,OAAmB,CAAC,IAAI,CAAC;AAC/C,MAAM,MAAM,CAAC,WAAW,CAAC,KAAK,CAACA,OAAmB,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;AACrF,MAAM,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;AAC3B,MAAM,MAAM;AACZ,IAAI;AACJ,MAAM,MAAM,CAAC,SAAS,EAAE,CAAC;AACzB,MAAM,MAAM;AACZ,KAAK;AACL,GAAG;AACH,EAAE,OAAO,GAAG,CAAC;AACb,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,uBAAuB,CAAC,SAAS,CAAC,eAAe,GAAG,WAAW;AAC3G,EAAE,IAAI,MAAM,GAAG,IAAID,cAAI,CAAC,YAAY,EAAE,CAAC;AACvC,EAAE,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,uBAAuB,CAAC,uBAAuB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;AAC5G,EAAE,OAAO,MAAM,CAAC,eAAe,EAAE,CAAC;AAClC,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,uBAAuB,CAAC,uBAAuB,GAAG,SAAS,OAAO,EAAE,MAAM,EAAE;AACxH,EAAE,IAAI,CAAC,GAAG,SAAS,CAAC;AACpB,EAAE,CAAC,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;AAC1B,EAAE,IAAI,CAAC,IAAI,IAAI,EAAE;AACjB,IAAI,MAAM,CAAC,YAAY;AACvB,MAAM,CAAC;AACP,MAAM,CAAC;AACP,MAAMC,OAAmB,CAAC,IAAI,CAAC,uBAAuB;AACtD,KAAK,CAAC;AACN,GAAG;AACH,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,uBAAuB,CAAC,SAAS,CAAC,SAAS,GAAG,WAAW;AACrG,EAAE;AACF,IAAID,cAAI,CAAC,OAAO,CAAC,eAAe,CAAC,IAAI,EAAEC,OAAmB,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE;AACrE,CAAC,CAAC;AACF;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,uBAAuB,CAAC,SAAS,CAAC,SAAS,GAAG,SAAS,KAAK,EAAE;AAC1G,EAAED,cAAI,CAAC,OAAO,CAAC,eAAe,CAAC,IAAI,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;AAC/C,CAAC,CAAC;AACF;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,uBAAuB,CAAC,SAAS,CAAC,WAAW,GAAG,WAAW;AACvG,EAAE,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;AAC5B,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,uBAAuB,CAAC,SAAS,CAAC,SAAS,GAAG,WAAW;AACrG,EAAE,OAAOA,cAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,IAAI,CAAC;AAChD,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,wBAAwB,GAAG,SAAS,QAAQ,EAAE;AAC1F,EAAEA,cAAI,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,wBAAwB,CAAC,eAAe,EAAE,IAAI,CAAC,CAAC;AAC7I,CAAC,CAAC;AACF,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,wBAAwB,EAAEA,cAAI,CAAC,OAAO,CAAC,CAAC;AAClG,IAAI,IAAI,CAAC,KAAK,IAAI,CAAC,QAAQ,EAAE;AAC7B,EAAE,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,wBAAwB,CAAC,WAAW,GAAG,sEAAsE,CAAC;AAC5J,CAAC;AACD;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,wBAAwB,CAAC,eAAe,GAAG,CAAC,CAAC,CAAC,CAAC;AAC3F;AACA;AACA;AACA,IAAIA,cAAI,CAAC,OAAO,CAAC,kBAAkB,EAAE;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,wBAAwB,CAAC,SAAS,CAAC,QAAQ,GAAG,SAAS,mBAAmB,EAAE;AACxH,EAAE,OAAO,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,wBAAwB,CAAC,QAAQ,CAAC,mBAAmB,EAAE,IAAI,CAAC,CAAC;AAClH,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,wBAAwB,CAAC,QAAQ,GAAG,SAAS,eAAe,EAAE,GAAG,EAAE;AAC/G,MAAS,GAAG,GAAG;AACf,IAAI,SAAS,EAAEA,cAAI,CAAC,OAAO,CAAC,YAAY,CAAC,GAAG,CAAC,YAAY,EAAE;AAC3D,IAAII,SAA0B,CAAC,IAAI,CAAC,QAAQ,EAAE,eAAe,CAAC;AAC9D,IAAI;AACJ;AACA,EAAE,IAAI,eAAe,EAAE;AACvB,IAAI,GAAG,CAAC,oBAAoB,GAAG,GAAG,CAAC;AACnC,GAAG;AACH,EAAE,OAAO,GAAG,CAAC;AACb,CAAC,CAAC;AACF,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,wBAAwB,CAAC,iBAAiB,GAAG,SAAS,KAAK,EAAE;AACzG,EAAE,IAAI,MAAM,GAAG,IAAIJ,cAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;AAC5C,EAAE,IAAI,GAAG,GAAG,IAAI,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,wBAAwB,CAAC;AACrF,EAAE,OAAO,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,wBAAwB,CAAC,2BAA2B,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;AACvH,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,wBAAwB,CAAC,2BAA2B,GAAG,SAAS,GAAG,EAAE,MAAM,EAAE;AACzH,EAAE,OAAO,MAAM,CAAC,SAAS,EAAE,EAAE;AAC7B,IAAI,IAAI,MAAM,CAAC,UAAU,EAAE,EAAE;AAC7B,MAAM,MAAM;AACZ,KAAK;AACL,IAAI,IAAI,KAAK,GAAG,MAAM,CAAC,cAAc,EAAE,CAAC;AACxC,IAAI,QAAQ,KAAK;AACjB,IAAI,KAAK,CAAC;AACV,MAAM,IAAI,KAAK,GAAG,IAAII,SAA0B,CAAC,IAAI,CAAC;AACtD,MAAM,MAAM,CAAC,WAAW,CAAC,KAAK,CAACA,SAA0B,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;AAC5F,MAAM,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AAC1B,MAAM,MAAM;AACZ,IAAI;AACJ,MAAM,MAAM,CAAC,SAAS,EAAE,CAAC;AACzB,MAAM,MAAM;AACZ,KAAK;AACL,GAAG;AACH,EAAE,OAAO,GAAG,CAAC;AACb,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,wBAAwB,CAAC,SAAS,CAAC,eAAe,GAAG,WAAW;AAC5G,EAAE,IAAI,MAAM,GAAG,IAAIJ,cAAI,CAAC,YAAY,EAAE,CAAC;AACvC,EAAE,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,wBAAwB,CAAC,uBAAuB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;AAC7G,EAAE,OAAO,MAAM,CAAC,eAAe,EAAE,CAAC;AAClC,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,wBAAwB,CAAC,uBAAuB,GAAG,SAAS,OAAO,EAAE,MAAM,EAAE;AACzH,EAAE,IAAI,CAAC,GAAG,SAAS,CAAC;AACpB,EAAE,CAAC,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;AAC7B,EAAE,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE;AACpB,IAAI,MAAM,CAAC,oBAAoB;AAC/B,MAAM,CAAC;AACP,MAAM,CAAC;AACP,MAAMI,SAA0B,CAAC,IAAI,CAAC,uBAAuB;AAC7D,KAAK,CAAC;AACN,GAAG;AACH,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,wBAAwB,CAAC,SAAS,CAAC,YAAY,GAAG,WAAW;AACzG,EAAE;AACF,IAAIJ,cAAI,CAAC,OAAO,CAAC,uBAAuB,CAAC,IAAI,EAAEI,SAA0B,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE;AACpF,CAAC,CAAC;AACF;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,wBAAwB,CAAC,SAAS,CAAC,YAAY,GAAG,SAAS,KAAK,EAAE;AAC9G,EAAEJ,cAAI,CAAC,OAAO,CAAC,uBAAuB,CAAC,IAAI,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;AACvD,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,wBAAwB,CAAC,SAAS,CAAC,QAAQ,GAAG,SAAS,SAAS,EAAE,SAAS,EAAE;AACzH,EAAE,OAAOA,cAAI,CAAC,OAAO,CAAC,yBAAyB,CAAC,IAAI,EAAE,CAAC,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;AACjI,CAAC,CAAC;AACF;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,wBAAwB,CAAC,SAAS,CAAC,cAAc,GAAG,WAAW;AAC3G,EAAE,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;AACxB,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,0BAA0B,GAAG,SAAS,QAAQ,EAAE;AAC5F,EAAEA,cAAI,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;AAC7D,CAAC,CAAC;AACF,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,0BAA0B,EAAEA,cAAI,CAAC,OAAO,CAAC,CAAC;AACpG,IAAI,IAAI,CAAC,KAAK,IAAI,CAAC,QAAQ,EAAE;AAC7B,EAAE,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,0BAA0B,CAAC,WAAW,GAAG,wEAAwE,CAAC;AAChK,CAAC;AACD;AACA;AACA,IAAIA,cAAI,CAAC,OAAO,CAAC,kBAAkB,EAAE;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,0BAA0B,CAAC,SAAS,CAAC,QAAQ,GAAG,SAAS,mBAAmB,EAAE;AAC1H,EAAE,OAAO,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,0BAA0B,CAAC,QAAQ,CAAC,mBAAmB,EAAE,IAAI,CAAC,CAAC;AACpH,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,0BAA0B,CAAC,QAAQ,GAAG,SAAS,eAAe,EAAE,GAAG,EAAE;AACjH,MAAS,GAAG,GAAG;AACf;AACA,IAAI;AACJ;AACA,EAAE,IAAI,eAAe,EAAE;AACvB,IAAI,GAAG,CAAC,oBAAoB,GAAG,GAAG,CAAC;AACnC,GAAG;AACH,EAAE,OAAO,GAAG,CAAC;AACb,CAAC,CAAC;AACF,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,0BAA0B,CAAC,iBAAiB,GAAG,SAAS,KAAK,EAAE;AAC3G,EAAE,IAAI,MAAM,GAAG,IAAIA,cAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;AAC5C,EAAE,IAAI,GAAG,GAAG,IAAI,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,0BAA0B,CAAC;AACvF,EAAE,OAAO,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,0BAA0B,CAAC,2BAA2B,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;AACzH,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,0BAA0B,CAAC,2BAA2B,GAAG,SAAS,GAAG,EAAE,MAAM,EAAE;AAC3H,EAAE,OAAO,MAAM,CAAC,SAAS,EAAE,EAAE;AAC7B,IAAI,IAAI,MAAM,CAAC,UAAU,EAAE,EAAE;AAC7B,MAAM,MAAM;AACZ,KAAK;AACL,IAAI,IAAI,KAAK,GAAG,MAAM,CAAC,cAAc,EAAE,CAAC;AACxC,IAAI,QAAQ,KAAK;AACjB,IAAI;AACJ,MAAM,MAAM,CAAC,SAAS,EAAE,CAAC;AACzB,MAAM,MAAM;AACZ,KAAK;AACL,GAAG;AACH,EAAE,OAAO,GAAG,CAAC;AACb,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,0BAA0B,CAAC,SAAS,CAAC,eAAe,GAAG,WAAW;AAC9G,EAAE,IAAI,MAAM,GAAG,IAAIA,cAAI,CAAC,YAAY,EAAE,CAAC;AACvC,EAAE,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,0BAA0B,CAAC,uBAAuB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;AAC/G,EAAE,OAAO,MAAM,CAAC,eAAe,EAAE,CAAC;AAClC,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,0BAA0B,CAAC,uBAAuB,GAAG,SAAS,OAAO,EAAE,MAAM,EAAE;AAE3H,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,2BAA2B,GAAG,SAAS,QAAQ,EAAE;AAC7F,EAAEA,cAAI,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,2BAA2B,CAAC,eAAe,EAAE,IAAI,CAAC,CAAC;AAChJ,CAAC,CAAC;AACF,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,2BAA2B,EAAEA,cAAI,CAAC,OAAO,CAAC,CAAC;AACrG,IAAI,IAAI,CAAC,KAAK,IAAI,CAAC,QAAQ,EAAE;AAC7B,EAAE,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,2BAA2B,CAAC,WAAW,GAAG,yEAAyE,CAAC;AAClK,CAAC;AACD;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,2BAA2B,CAAC,eAAe,GAAG,CAAC,CAAC,CAAC,CAAC;AAC9F;AACA;AACA;AACA,IAAIA,cAAI,CAAC,OAAO,CAAC,kBAAkB,EAAE;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,2BAA2B,CAAC,SAAS,CAAC,QAAQ,GAAG,SAAS,mBAAmB,EAAE;AAC3H,EAAE,OAAO,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,2BAA2B,CAAC,QAAQ,CAAC,mBAAmB,EAAE,IAAI,CAAC,CAAC;AACrH,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,2BAA2B,CAAC,QAAQ,GAAG,SAAS,eAAe,EAAE,GAAG,EAAE;AAClH,MAAS,GAAG,GAAG;AACf,IAAI,QAAQ,EAAEA,cAAI,CAAC,OAAO,CAAC,YAAY,CAAC,GAAG,CAAC,WAAW,EAAE;AACzD,IAAII,SAA0B,CAAC,SAAS,CAAC,QAAQ,EAAE,eAAe,CAAC;AACnE,IAAI;AACJ;AACA,EAAE,IAAI,eAAe,EAAE;AACvB,IAAI,GAAG,CAAC,oBAAoB,GAAG,GAAG,CAAC;AACnC,GAAG;AACH,EAAE,OAAO,GAAG,CAAC;AACb,CAAC,CAAC;AACF,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,2BAA2B,CAAC,iBAAiB,GAAG,SAAS,KAAK,EAAE;AAC5G,EAAE,IAAI,MAAM,GAAG,IAAIJ,cAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;AAC5C,EAAE,IAAI,GAAG,GAAG,IAAI,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,2BAA2B,CAAC;AACxF,EAAE,OAAO,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,2BAA2B,CAAC,2BAA2B,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;AAC1H,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,2BAA2B,CAAC,2BAA2B,GAAG,SAAS,GAAG,EAAE,MAAM,EAAE;AAC5H,EAAE,OAAO,MAAM,CAAC,SAAS,EAAE,EAAE;AAC7B,IAAI,IAAI,MAAM,CAAC,UAAU,EAAE,EAAE;AAC7B,MAAM,MAAM;AACZ,KAAK;AACL,IAAI,IAAI,KAAK,GAAG,MAAM,CAAC,cAAc,EAAE,CAAC;AACxC,IAAI,QAAQ,KAAK;AACjB,IAAI,KAAK,CAAC;AACV,MAAM,IAAI,KAAK,GAAG,IAAII,SAA0B,CAAC,SAAS,CAAC;AAC3D,MAAM,MAAM,CAAC,WAAW,CAAC,KAAK,CAACA,SAA0B,CAAC,SAAS,CAAC,2BAA2B,CAAC,CAAC;AACjG,MAAM,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AACzB,MAAM,MAAM;AACZ,IAAI;AACJ,MAAM,MAAM,CAAC,SAAS,EAAE,CAAC;AACzB,MAAM,MAAM;AACZ,KAAK;AACL,GAAG;AACH,EAAE,OAAO,GAAG,CAAC;AACb,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,2BAA2B,CAAC,SAAS,CAAC,eAAe,GAAG,WAAW;AAC/G,EAAE,IAAI,MAAM,GAAG,IAAIJ,cAAI,CAAC,YAAY,EAAE,CAAC;AACvC,EAAE,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,2BAA2B,CAAC,uBAAuB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;AAChH,EAAE,OAAO,MAAM,CAAC,eAAe,EAAE,CAAC;AAClC,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,2BAA2B,CAAC,uBAAuB,GAAG,SAAS,OAAO,EAAE,MAAM,EAAE;AAC5H,EAAE,IAAI,CAAC,GAAG,SAAS,CAAC;AACpB,EAAE,CAAC,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;AAC5B,EAAE,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE;AACpB,IAAI,MAAM,CAAC,oBAAoB;AAC/B,MAAM,CAAC;AACP,MAAM,CAAC;AACP,MAAMI,SAA0B,CAAC,SAAS,CAAC,uBAAuB;AAClE,KAAK,CAAC;AACN,GAAG;AACH,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,2BAA2B,CAAC,SAAS,CAAC,WAAW,GAAG,WAAW;AAC3G,EAAE;AACF,IAAIJ,cAAI,CAAC,OAAO,CAAC,uBAAuB,CAAC,IAAI,EAAEI,SAA0B,CAAC,SAAS,EAAE,CAAC,CAAC,EAAE;AACzF,CAAC,CAAC;AACF;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,2BAA2B,CAAC,SAAS,CAAC,WAAW,GAAG,SAAS,KAAK,EAAE;AAChH,EAAEJ,cAAI,CAAC,OAAO,CAAC,uBAAuB,CAAC,IAAI,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;AACvD,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,2BAA2B,CAAC,SAAS,CAAC,OAAO,GAAG,SAAS,SAAS,EAAE,SAAS,EAAE;AAC3H,EAAE,OAAOA,cAAI,CAAC,OAAO,CAAC,yBAAyB,CAAC,IAAI,EAAE,CAAC,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;AACtI,CAAC,CAAC;AACF;AACA;AACA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,2BAA2B,CAAC,SAAS,CAAC,aAAa,GAAG,WAAW;AAC7G,EAAE,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;AACvB,CAAC,CAAC;AACF;AACA;AACA,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC;;;IC35G5D;AAAZ,WAAY,kBAAkB;EAC5B,iEAAW,CAAA;EACX,yFAAuB,CAAA;EACvB,+EAAkB,CAAA;EAClB,2EAAgB,CAAA;EAChB,2FAAwB,CAAA;EACxB,2EAAgB,CAAA;EAChB,iEAAW,CAAA;AACb,CAAC,EARW,kBAAkB,KAAlB,kBAAkB,QAQ7B;MAEY,qBAAqB;EAGhC,YACkB,IAAqC,EACrC,IAAwB,EACxB,IAAa;IAFb,SAAI,GAAJ,IAAI,CAAiC;IACrC,SAAI,GAAJ,IAAI,CAAoB;IACxB,SAAI,GAAJ,IAAI,CAAS;IAE7B,IAAI,CAAC,OAAO,GAAG,wBAAwB,CAAC,IAAI,CAAC,CAAC;GAC/C;CACF;AAED,SAAS,wBAAwB,CAAC,IAAwB;EACxD,QAAQ,IAAI;IACV,KAAK,kBAAkB,CAAC,OAAO;MAC7B,OAAO,4BAA4B,CAAC;IACtC,KAAK,kBAAkB,CAAC,mBAAmB;MACzC,OAAO,mGAAmG,CAAC;IAC7G,KAAK,kBAAkB,CAAC,cAAc;MACpC,OAAO,yCAAyC,CAAC;IACnD,KAAK,kBAAkB,CAAC,YAAY;MAClC,OAAO,2BAA2B,CAAC;IACrC,KAAK,kBAAkB,CAAC,oBAAoB;MAC1C,OAAO,uDAAuD,CAAC;IACjE,KAAK,kBAAkB,CAAC,YAAY;MAClC,OAAO,iGAAiG,CAAC;IAC3G,KAAK,kBAAkB,CAAC,OAAO;MAC7B,OAAO,yCAAyC,CAAC;GACpD;AACH,CAAC;MAEY,cAAe,SAAQ,WAAW;EAC7C,YAAmB,OAAe,EAAE,CAAS;IAC3C,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;;IAGlB,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,cAAc,CAAC,SAAS,CAAC,CAAC;GACvD;CACF;MAEY,0BAA2B,SAAQ,cAAc;EAC5D,YAAmB,OAAe,EAAE,CAAS;IAC3C,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;;IAGlB,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,0BAA0B,CAAC,SAAS,CAAC,CAAC;GACnE;CACF;MAEY,iCAAkC,SAAQ,cAAc;EACnE,YAAmB,OAAe,EAAE,CAAS;IAC3C,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;;IAGlB,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,iCAAiC,CAAC,SAAS,CAAC,CAAC;GAC1E;CACF;MAEY,6BAA8B,SAAQ,cAAc;EAC/D,YAAmB,OAAe,EAAE,CAAS;IAC3C,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;;IAGlB,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,6BAA6B,CAAC,SAAS,CAAC,CAAC;GACtE;;;AC5EH;AACA;AACA;AAC6F;AAC7F,IAAI,IAAI,GAAGK,iBAAmC,CAAC,IAAI,CAAC;AACpD;AACA,IAAI,YAAY,IAAI,YAAY;AAChC,EAAE,SAAS,YAAY,GAAG,EAAE;AAC5B,EAAE,YAAY,CAAC,WAAW,GAAG,oDAAoD,CAAC;AAClF,EAAE,OAAO,YAAY,CAAC;AACtB,CAAC,EAAE,CAAC,CAAC;AACL;AACA,YAAY,CAAC,OAAO,GAAG;AACvB,EAAE,UAAU,EAAE,SAAS;AACvB,EAAE,OAAO,EAAE,YAAY;AACvB,EAAE,aAAa,EAAE,KAAK;AACtB,EAAE,cAAc,EAAE,KAAK;AACvB,EAAE,WAAW,EAAEC,iBAAkC,CAAC,cAAc;AAChE,EAAE,YAAY,EAAEA,iBAAkC,CAAC,eAAe;AAClE,CAAC,CAAC;AACF;AACA,YAAY,CAAC,UAAU,GAAG;AAC1B,EAAE,UAAU,EAAE,YAAY;AAC1B,EAAE,OAAO,EAAE,YAAY;AACvB,EAAE,aAAa,EAAE,KAAK;AACtB,EAAE,cAAc,EAAE,KAAK;AACvB,EAAE,WAAW,EAAEA,iBAAkC,CAAC,iBAAiB;AACnE,EAAE,YAAY,EAAEA,iBAAkC,CAAC,kBAAkB;AACrE,CAAC,CAAC;AACF;AACA,YAAY,CAAC,YAAY,GAAG;AAC5B,EAAE,UAAU,EAAE,cAAc;AAC5B,EAAE,OAAO,EAAE,YAAY;AACvB,EAAE,aAAa,EAAE,KAAK;AACtB,EAAE,cAAc,EAAE,KAAK;AACvB,EAAE,WAAW,EAAEA,iBAAkC,CAAC,mBAAmB;AACrE,EAAE,YAAY,EAAEA,iBAAkC,CAAC,oBAAoB;AACvE,CAAC,CAAC;AACF;AACA,YAAY,CAAC,SAAS,GAAG;AACzB,EAAE,UAAU,EAAE,WAAW;AACzB,EAAE,OAAO,EAAE,YAAY;AACvB,EAAE,aAAa,EAAE,KAAK;AACtB,EAAE,cAAc,EAAE,IAAI;AACtB,EAAE,WAAW,EAAEA,iBAAkC,CAAC,gBAAgB;AAClE,EAAE,YAAY,EAAEA,iBAAkC,CAAC,iBAAiB;AACpE,CAAC,CAAC;AACF;AACA,YAAY,CAAC,MAAM,GAAG;AACtB,EAAE,UAAU,EAAE,QAAQ;AACtB,EAAE,OAAO,EAAE,YAAY;AACvB,EAAE,aAAa,EAAE,KAAK;AACtB,EAAE,cAAc,EAAE,KAAK;AACvB,EAAE,WAAW,EAAEA,iBAAkC,CAAC,aAAa;AAC/D,EAAE,YAAY,EAAEA,iBAAkC,CAAC,cAAc;AACjE,CAAC,CAAC;AACF;AACA,YAAY,CAAC,UAAU,GAAG;AAC1B,EAAE,UAAU,EAAE,YAAY;AAC1B,EAAE,OAAO,EAAE,YAAY;AACvB,EAAE,aAAa,EAAE,KAAK;AACtB,EAAE,cAAc,EAAE,KAAK;AACvB,EAAE,WAAW,EAAEA,iBAAkC,CAAC,iBAAiB;AACnE,EAAE,YAAY,EAAEA,iBAAkC,CAAC,kBAAkB;AACrE,CAAC,CAAC;AACF;AACA,YAAY,CAAC,SAAS,GAAG;AACzB,EAAE,UAAU,EAAE,WAAW;AACzB,EAAE,OAAO,EAAE,YAAY;AACvB,EAAE,aAAa,EAAE,KAAK;AACtB,EAAE,cAAc,EAAE,KAAK;AACvB,EAAE,WAAW,EAAEA,iBAAkC,CAAC,gBAAgB;AAClE,EAAE,YAAY,EAAEA,iBAAkC,CAAC,iBAAiB;AACpE,CAAC,CAAC;AACF;AACA,YAAY,CAAC,WAAW,GAAG;AAC3B,EAAE,UAAU,EAAE,aAAa;AAC3B,EAAE,OAAO,EAAE,YAAY;AACvB,EAAE,aAAa,EAAE,KAAK;AACtB,EAAE,cAAc,EAAE,KAAK;AACvB,EAAE,WAAW,EAAEA,iBAAkC,CAAC,kBAAkB;AACpE,EAAE,YAAY,EAAEA,iBAAkC,CAAC,mBAAmB;AACtE,CAAC,CAAC;AACF;AACA,YAAY,CAAC,gBAAgB,GAAG;AAChC,EAAE,UAAU,EAAE,kBAAkB;AAChC,EAAE,OAAO,EAAE,YAAY;AACvB,EAAE,aAAa,EAAE,KAAK;AACtB,EAAE,cAAc,EAAE,KAAK;AACvB,EAAE,WAAW,EAAEA,iBAAkC,CAAC,uBAAuB;AACzE,EAAE,YAAY,EAAEA,iBAAkC,CAAC,wBAAwB;AAC3E,CAAC,CAAC;AACF;AACA,YAAY,CAAC,mBAAmB,GAAG;AACnC,EAAE,UAAU,EAAE,qBAAqB;AACnC,EAAE,OAAO,EAAE,YAAY;AACvB,EAAE,aAAa,EAAE,KAAK;AACtB,EAAE,cAAc,EAAE,KAAK;AACvB,EAAE,WAAW,EAAEA,iBAAkC,CAAC,0BAA0B;AAC5E,EAAE,YAAY,EAAEA,iBAAkC,CAAC,2BAA2B;AAC9E,CAAC,CAAC;AACF;AACA,kBAAoB,GAAG,YAAY,CAAC;AACpC;AACA,SAAS,kBAAkB,CAAC,WAAW,EAAE,OAAO,EAAE;AAClD,EAAE,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;AACjC,EAAE,IAAI,CAAC,OAAO,GAAG,OAAO,IAAI,EAAE,CAAC;AAC/B,CAAC;AACD;AACA,kBAAkB,CAAC,SAAS,CAAC,OAAO,GAAG,SAAS,OAAO,CAAC,cAAc,EAAE,QAAQ,EAAE,QAAQ,EAAE;AAC5F,EAAE,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE;AAC9B,IAAI,QAAQ,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;AAC5B,GAAG;AACH,EAAE,IAAI,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,OAAO,EAAE;AAChD,IAAI,OAAO,EAAE,cAAc;AAC3B,IAAI,IAAI,EAAE,IAAI,CAAC,WAAW;AAC1B,IAAI,QAAQ,EAAE,QAAQ;AACtB,IAAI,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,SAAS;AACrC,IAAI,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,KAAK;AAC7B,IAAI,KAAK,EAAE,UAAU,QAAQ,EAAE;AAC/B,MAAM,IAAI,QAAQ,EAAE;AACpB,QAAQ,IAAI,QAAQ,CAAC,MAAM,KAAK,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE;AAC9C,UAAU,IAAI,GAAG,GAAG,IAAI,KAAK,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;AACtD,UAAU,GAAG,CAAC,IAAI,GAAG,QAAQ,CAAC,MAAM,CAAC;AACrC,UAAU,GAAG,CAAC,QAAQ,GAAG,QAAQ,CAAC,QAAQ,CAAC;AAC3C,UAAU,QAAQ,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;AAC9B,SAAS,MAAM;AACf,UAAU,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC;AAC3C,SAAS;AACT,OAAO;AACP,KAAK;AACL,GAAG,CAAC,CAAC;AACL,EAAE,OAAO;AACT,IAAI,MAAM,EAAE,YAAY;AACxB,MAAM,QAAQ,GAAG,IAAI,CAAC;AACtB,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;AACrB,KAAK;AACL,GAAG,CAAC;AACJ,CAAC,CAAC;AACF;AACA,kBAAkB,CAAC,SAAS,CAAC,UAAU,GAAG,SAAS,UAAU,CAAC,cAAc,EAAE,QAAQ,EAAE,QAAQ,EAAE;AAClG,EAAE,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE;AAC9B,IAAI,QAAQ,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;AAC5B,GAAG;AACH,EAAE,IAAI,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,UAAU,EAAE;AACnD,IAAI,OAAO,EAAE,cAAc;AAC3B,IAAI,IAAI,EAAE,IAAI,CAAC,WAAW;AAC1B,IAAI,QAAQ,EAAE,QAAQ;AACtB,IAAI,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,SAAS;AACrC,IAAI,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,KAAK;AAC7B,IAAI,KAAK,EAAE,UAAU,QAAQ,EAAE;AAC/B,MAAM,IAAI,QAAQ,EAAE;AACpB,QAAQ,IAAI,QAAQ,CAAC,MAAM,KAAK,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE;AAC9C,UAAU,IAAI,GAAG,GAAG,IAAI,KAAK,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;AACtD,UAAU,GAAG,CAAC,IAAI,GAAG,QAAQ,CAAC,MAAM,CAAC;AACrC,UAAU,GAAG,CAAC,QAAQ,GAAG,QAAQ,CAAC,QAAQ,CAAC;AAC3C,UAAU,QAAQ,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;AAC9B,SAAS,MAAM;AACf,UAAU,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC;AAC3C,SAAS;AACT,OAAO;AACP,KAAK;AACL,GAAG,CAAC,CAAC;AACL,EAAE,OAAO;AACT,IAAI,MAAM,EAAE,YAAY;AACxB,MAAM,QAAQ,GAAG,IAAI,CAAC;AACtB,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;AACrB,KAAK;AACL,GAAG,CAAC;AACJ,CAAC,CAAC;AACF;AACA,kBAAkB,CAAC,SAAS,CAAC,YAAY,GAAG,SAAS,YAAY,CAAC,cAAc,EAAE,QAAQ,EAAE,QAAQ,EAAE;AACtG,EAAE,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE;AAC9B,IAAI,QAAQ,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;AAC5B,GAAG;AACH,EAAE,IAAI,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,YAAY,EAAE;AACrD,IAAI,OAAO,EAAE,cAAc;AAC3B,IAAI,IAAI,EAAE,IAAI,CAAC,WAAW;AAC1B,IAAI,QAAQ,EAAE,QAAQ;AACtB,IAAI,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,SAAS;AACrC,IAAI,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,KAAK;AAC7B,IAAI,KAAK,EAAE,UAAU,QAAQ,EAAE;AAC/B,MAAM,IAAI,QAAQ,EAAE;AACpB,QAAQ,IAAI,QAAQ,CAAC,MAAM,KAAK,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE;AAC9C,UAAU,IAAI,GAAG,GAAG,IAAI,KAAK,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;AACtD,UAAU,GAAG,CAAC,IAAI,GAAG,QAAQ,CAAC,MAAM,CAAC;AACrC,UAAU,GAAG,CAAC,QAAQ,GAAG,QAAQ,CAAC,QAAQ,CAAC;AAC3C,UAAU,QAAQ,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;AAC9B,SAAS,MAAM;AACf,UAAU,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC;AAC3C,SAAS;AACT,OAAO;AACP,KAAK;AACL,GAAG,CAAC,CAAC;AACL,EAAE,OAAO;AACT,IAAI,MAAM,EAAE,YAAY;AACxB,MAAM,QAAQ,GAAG,IAAI,CAAC;AACtB,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;AACrB,KAAK;AACL,GAAG,CAAC;AACJ,CAAC,CAAC;AACF;AACA,kBAAkB,CAAC,SAAS,CAAC,SAAS,GAAG,SAAS,SAAS,CAAC,cAAc,EAAE,QAAQ,EAAE;AACtF,EAAE,IAAI,SAAS,GAAG;AAClB,IAAI,IAAI,EAAE,EAAE;AACZ,IAAI,GAAG,EAAE,EAAE;AACX,IAAI,MAAM,EAAE,EAAE;AACd,GAAG,CAAC;AACJ,EAAE,IAAI,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,SAAS,EAAE;AACnD,IAAI,OAAO,EAAE,cAAc;AAC3B,IAAI,IAAI,EAAE,IAAI,CAAC,WAAW;AAC1B,IAAI,QAAQ,EAAE,QAAQ;AACtB,IAAI,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,SAAS;AACrC,IAAI,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,KAAK;AAC7B,IAAI,SAAS,EAAE,UAAU,eAAe,EAAE;AAC1C,MAAM,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,OAAO,EAAE;AAChD,QAAQ,OAAO,CAAC,eAAe,CAAC,CAAC;AACjC,OAAO,CAAC,CAAC;AACT,KAAK;AACL,IAAI,KAAK,EAAE,UAAU,MAAM,EAAE,aAAa,EAAE,QAAQ,EAAE;AACtD,MAAM,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,UAAU,OAAO,EAAE;AAClD,QAAQ,OAAO,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,CAAC;AAC9E,OAAO,CAAC,CAAC;AACT,MAAM,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,UAAU,OAAO,EAAE;AAC/C,QAAQ,OAAO,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,CAAC;AAC9E,OAAO,CAAC,CAAC;AACT,MAAM,SAAS,GAAG,IAAI,CAAC;AACvB,KAAK;AACL,GAAG,CAAC,CAAC;AACL,EAAE,OAAO;AACT,IAAI,EAAE,EAAE,UAAU,IAAI,EAAE,OAAO,EAAE;AACjC,MAAM,SAAS,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AACpC,MAAM,OAAO,IAAI,CAAC;AAClB,KAAK;AACL,IAAI,MAAM,EAAE,YAAY;AACxB,MAAM,SAAS,GAAG,IAAI,CAAC;AACvB,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;AACrB,KAAK;AACL,GAAG,CAAC;AACJ,CAAC,CAAC;AACF;AACA,kBAAkB,CAAC,SAAS,CAAC,MAAM,GAAG,SAAS,MAAM,CAAC,cAAc,EAAE,QAAQ,EAAE,QAAQ,EAAE;AAC1F,EAAE,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE;AAC9B,IAAI,QAAQ,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;AAC5B,GAAG;AACH,EAAE,IAAI,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,MAAM,EAAE;AAC/C,IAAI,OAAO,EAAE,cAAc;AAC3B,IAAI,IAAI,EAAE,IAAI,CAAC,WAAW;AAC1B,IAAI,QAAQ,EAAE,QAAQ;AACtB,IAAI,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,SAAS;AACrC,IAAI,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,KAAK;AAC7B,IAAI,KAAK,EAAE,UAAU,QAAQ,EAAE;AAC/B,MAAM,IAAI,QAAQ,EAAE;AACpB,QAAQ,IAAI,QAAQ,CAAC,MAAM,KAAK,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE;AAC9C,UAAU,IAAI,GAAG,GAAG,IAAI,KAAK,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;AACtD,UAAU,GAAG,CAAC,IAAI,GAAG,QAAQ,CAAC,MAAM,CAAC;AACrC,UAAU,GAAG,CAAC,QAAQ,GAAG,QAAQ,CAAC,QAAQ,CAAC;AAC3C,UAAU,QAAQ,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;AAC9B,SAAS,MAAM;AACf,UAAU,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC;AAC3C,SAAS;AACT,OAAO;AACP,KAAK;AACL,GAAG,CAAC,CAAC;AACL,EAAE,OAAO;AACT,IAAI,MAAM,EAAE,YAAY;AACxB,MAAM,QAAQ,GAAG,IAAI,CAAC;AACtB,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;AACrB,KAAK;AACL,GAAG,CAAC;AACJ,CAAC,CAAC;AACF;AACA,kBAAkB,CAAC,SAAS,CAAC,UAAU,GAAG,SAAS,UAAU,CAAC,cAAc,EAAE,QAAQ,EAAE,QAAQ,EAAE;AAClG,EAAE,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE;AAC9B,IAAI,QAAQ,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;AAC5B,GAAG;AACH,EAAE,IAAI,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,UAAU,EAAE;AACnD,IAAI,OAAO,EAAE,cAAc;AAC3B,IAAI,IAAI,EAAE,IAAI,CAAC,WAAW;AAC1B,IAAI,QAAQ,EAAE,QAAQ;AACtB,IAAI,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,SAAS;AACrC,IAAI,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,KAAK;AAC7B,IAAI,KAAK,EAAE,UAAU,QAAQ,EAAE;AAC/B,MAAM,IAAI,QAAQ,EAAE;AACpB,QAAQ,IAAI,QAAQ,CAAC,MAAM,KAAK,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE;AAC9C,UAAU,IAAI,GAAG,GAAG,IAAI,KAAK,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;AACtD,UAAU,GAAG,CAAC,IAAI,GAAG,QAAQ,CAAC,MAAM,CAAC;AACrC,UAAU,GAAG,CAAC,QAAQ,GAAG,QAAQ,CAAC,QAAQ,CAAC;AAC3C,UAAU,QAAQ,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;AAC9B,SAAS,MAAM;AACf,UAAU,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC;AAC3C,SAAS;AACT,OAAO;AACP,KAAK;AACL,GAAG,CAAC,CAAC;AACL,EAAE,OAAO;AACT,IAAI,MAAM,EAAE,YAAY;AACxB,MAAM,QAAQ,GAAG,IAAI,CAAC;AACtB,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;AACrB,KAAK;AACL,GAAG,CAAC;AACJ,CAAC,CAAC;AACF;AACA,kBAAkB,CAAC,SAAS,CAAC,SAAS,GAAG,SAAS,SAAS,CAAC,cAAc,EAAE,QAAQ,EAAE,QAAQ,EAAE;AAChG,EAAE,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE;AAC9B,IAAI,QAAQ,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;AAC5B,GAAG;AACH,EAAE,IAAI,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,SAAS,EAAE;AAClD,IAAI,OAAO,EAAE,cAAc;AAC3B,IAAI,IAAI,EAAE,IAAI,CAAC,WAAW;AAC1B,IAAI,QAAQ,EAAE,QAAQ;AACtB,IAAI,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,SAAS;AACrC,IAAI,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,KAAK;AAC7B,IAAI,KAAK,EAAE,UAAU,QAAQ,EAAE;AAC/B,MAAM,IAAI,QAAQ,EAAE;AACpB,QAAQ,IAAI,QAAQ,CAAC,MAAM,KAAK,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE;AAC9C,UAAU,IAAI,GAAG,GAAG,IAAI,KAAK,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;AACtD,UAAU,GAAG,CAAC,IAAI,GAAG,QAAQ,CAAC,MAAM,CAAC;AACrC,UAAU,GAAG,CAAC,QAAQ,GAAG,QAAQ,CAAC,QAAQ,CAAC;AAC3C,UAAU,QAAQ,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;AAC9B,SAAS,MAAM;AACf,UAAU,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC;AAC3C,SAAS;AACT,OAAO;AACP,KAAK;AACL,GAAG,CAAC,CAAC;AACL,EAAE,OAAO;AACT,IAAI,MAAM,EAAE,YAAY;AACxB,MAAM,QAAQ,GAAG,IAAI,CAAC;AACtB,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;AACrB,KAAK;AACL,GAAG,CAAC;AACJ,CAAC,CAAC;AACF;AACA,kBAAkB,CAAC,SAAS,CAAC,WAAW,GAAG,SAAS,WAAW,CAAC,cAAc,EAAE,QAAQ,EAAE,QAAQ,EAAE;AACpG,EAAE,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE;AAC9B,IAAI,QAAQ,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;AAC5B,GAAG;AACH,EAAE,IAAI,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,WAAW,EAAE;AACpD,IAAI,OAAO,EAAE,cAAc;AAC3B,IAAI,IAAI,EAAE,IAAI,CAAC,WAAW;AAC1B,IAAI,QAAQ,EAAE,QAAQ;AACtB,IAAI,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,SAAS;AACrC,IAAI,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,KAAK;AAC7B,IAAI,KAAK,EAAE,UAAU,QAAQ,EAAE;AAC/B,MAAM,IAAI,QAAQ,EAAE;AACpB,QAAQ,IAAI,QAAQ,CAAC,MAAM,KAAK,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE;AAC9C,UAAU,IAAI,GAAG,GAAG,IAAI,KAAK,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;AACtD,UAAU,GAAG,CAAC,IAAI,GAAG,QAAQ,CAAC,MAAM,CAAC;AACrC,UAAU,GAAG,CAAC,QAAQ,GAAG,QAAQ,CAAC,QAAQ,CAAC;AAC3C,UAAU,QAAQ,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;AAC9B,SAAS,MAAM;AACf,UAAU,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC;AAC3C,SAAS;AACT,OAAO;AACP,KAAK;AACL,GAAG,CAAC,CAAC;AACL,EAAE,OAAO;AACT,IAAI,MAAM,EAAE,YAAY;AACxB,MAAM,QAAQ,GAAG,IAAI,CAAC;AACtB,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;AACrB,KAAK;AACL,GAAG,CAAC;AACJ,CAAC,CAAC;AACF;AACA,kBAAkB,CAAC,SAAS,CAAC,gBAAgB,GAAG,SAAS,gBAAgB,CAAC,cAAc,EAAE,QAAQ,EAAE,QAAQ,EAAE;AAC9G,EAAE,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE;AAC9B,IAAI,QAAQ,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;AAC5B,GAAG;AACH,EAAE,IAAI,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,gBAAgB,EAAE;AACzD,IAAI,OAAO,EAAE,cAAc;AAC3B,IAAI,IAAI,EAAE,IAAI,CAAC,WAAW;AAC1B,IAAI,QAAQ,EAAE,QAAQ;AACtB,IAAI,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,SAAS;AACrC,IAAI,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,KAAK;AAC7B,IAAI,KAAK,EAAE,UAAU,QAAQ,EAAE;AAC/B,MAAM,IAAI,QAAQ,EAAE;AACpB,QAAQ,IAAI,QAAQ,CAAC,MAAM,KAAK,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE;AAC9C,UAAU,IAAI,GAAG,GAAG,IAAI,KAAK,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;AACtD,UAAU,GAAG,CAAC,IAAI,GAAG,QAAQ,CAAC,MAAM,CAAC;AACrC,UAAU,GAAG,CAAC,QAAQ,GAAG,QAAQ,CAAC,QAAQ,CAAC;AAC3C,UAAU,QAAQ,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;AAC9B,SAAS,MAAM;AACf,UAAU,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC;AAC3C,SAAS;AACT,OAAO;AACP,KAAK;AACL,GAAG,CAAC,CAAC;AACL,EAAE,OAAO;AACT,IAAI,MAAM,EAAE,YAAY;AACxB,MAAM,QAAQ,GAAG,IAAI,CAAC;AACtB,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;AACrB,KAAK;AACL,GAAG,CAAC;AACJ,CAAC,CAAC;AACF;AACA,kBAAkB,CAAC,SAAS,CAAC,mBAAmB,GAAG,SAAS,mBAAmB,CAAC,cAAc,EAAE,QAAQ,EAAE,QAAQ,EAAE;AACpH,EAAE,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE;AAC9B,IAAI,QAAQ,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;AAC5B,GAAG;AACH,EAAE,IAAI,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,mBAAmB,EAAE;AAC5D,IAAI,OAAO,EAAE,cAAc;AAC3B,IAAI,IAAI,EAAE,IAAI,CAAC,WAAW;AAC1B,IAAI,QAAQ,EAAE,QAAQ;AACtB,IAAI,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,SAAS;AACrC,IAAI,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,KAAK;AAC7B,IAAI,KAAK,EAAE,UAAU,QAAQ,EAAE;AAC/B,MAAM,IAAI,QAAQ,EAAE;AACpB,QAAQ,IAAI,QAAQ,CAAC,MAAM,KAAK,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE;AAC9C,UAAU,IAAI,GAAG,GAAG,IAAI,KAAK,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;AACtD,UAAU,GAAG,CAAC,IAAI,GAAG,QAAQ,CAAC,MAAM,CAAC;AACrC,UAAU,GAAG,CAAC,QAAQ,GAAG,QAAQ,CAAC,QAAQ,CAAC;AAC3C,UAAU,QAAQ,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;AAC9B,SAAS,MAAM;AACf,UAAU,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC;AAC3C,SAAS;AACT,OAAO;AACP,KAAK;AACL,GAAG,CAAC,CAAC;AACL,EAAE,OAAO;AACT,IAAI,MAAM,EAAE,YAAY;AACxB,MAAM,QAAQ,GAAG,IAAI,CAAC;AACtB,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;AACrB,KAAK;AACL,GAAG,CAAC;AACJ,CAAC,CAAC;AACF;wBAC0B,GAAG;;SCjab,kBAAkB,CAAC,GAAQ;EACzC,OAAO,OAAO,GAAG,CAAC,IAAI,KAAK,QAAQ,IAAI,GAAG,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC;AACxE,CAAC;SAEe,qCAAqC,CACnD,OAAyB;EAEzB,IACE,OAAO,CAAC,gBAAgB,CAAC,UAAU,KAAKC,cAAY,CAAC,SAAS,CAAC,UAAU,EACzE;IACA,OAAOC,sBAAI,CAAC,kBAAkB,EAAE,CAAC,OAAO,CAAC,CAAC;GAC3C;OAAM;IACL,OAAOA,sBAAI,CAAC,yBAAyB,CAAC,EAAE,eAAe,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC;GAC5E;AACH;;ACxBA,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,EAAC,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,OAAO,MAAM,EAAE,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,mEAAmE,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,mEAAmE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,MAAM,QAAQ,MAAK,2BAA2B,CAAC,GAAG,CAAC,OAAO,SAAS,CAAC,CAAC,CAAC,OAAO,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,EAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,QAAQ,EAAE,OAAO,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,yBAAyB,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,2BAA2B,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,mBAAmB;;SCM3oC,kBAAkB,CAAC,GAAW;EAC5C,OAAOC,CAAS,CAAoB,GAAG,CAAC,CAAC;AAC3C;;ACuIA;;;;;MAKa,mBAAmB;EA2C9B,YACU,MAA0B,EAC1B,QAAgB,EAChB,iBAAiC;IACvC,YAAY,EAAE,IAAI;IAClB,oCAAoC,EAAE,IAAI;GAC3C;IALO,WAAM,GAAN,MAAM,CAAoB;IAC1B,aAAQ,GAAR,QAAQ,CAAQ;IAChB,mBAAc,GAAd,cAAc,CAGrB;IA5CK,eAAU,GAAG,CAAC,CAAC;IACf,UAAK,GAAG,IAAI,GAAG,EAAgB,CAAC;IAChC,mBAAc,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACxB,iBAAY,GAAkB,EAAE,CAAC;IACjC,cAAS,GAAG,KAAK,CAAC;;;;IAUnB,kBAAa,GAAG,IAAI,eAAe,EAAkB,CAAC;IAErD,UAAK,GAAmB;MAC9B,SAAS,EAAE,CAAC;MACZ,WAAW,EAAE,KAAK;MAClB,IAAI,EAAE,EAAE;MACR,UAAU,EAAE,EAAE,IAAI,EAAE,cAAc,EAAE;KACrC,CAAC;GAwBE;;;;EAnBJ,IAAW,gBAAgB;IACzB,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;GACxB;;;;;EAMD,IAAW,WAAW;IACpB,OAAO,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,KAAK,WAAW,CAAC;GACnD;;;;;;;EAiBM,YAAY,CACjB,QAA8C;IAE9C,OAAO,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC;GACxC;EAEM,YAAY,CAAC,SAAkB;IACpC,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;GAC5B;EAEO,MAAM,kCAAkC,CAC9C,WAAwB,EACxB,WAAmB;;IAEnB,MAAM,UAAU,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC,UAAU,CAAC;IAC9C,IACE,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC;MACjC,CAAA,MAAA,UAAU,CAAC,uBAAuB,0CAAE,OAAO,KAAI,IAAI;MACnD,UAAU,CAAC,uBAAuB,CAAC,OAAO;QACxC,mBAAmB,CAAC,4BAA4B,EAClD;MACA,MAAM,UAAU,GAAG,UAAU,CAAC,uBAAuB,CAAC,OAAO,GAAG,CAAC,CAAC;MAClE,OAAO,CAAC,IAAI,CACV,mEAAmE,UAAU,GAAG,CACjF,CAAC;MACF,UAAU,CAAC,uBAAuB,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;MACnD,IAAI,CAAC,mBAAmB,EAAE,CAAC;MAE3B,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC;MAEtC,IAAI,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;MAC9B,IAAI,CAAC,8BAA8B,EAAE,CAAC;MAEtC,IAAI,CAAC,WAAW,iCACX,IAAI,CAAC,KAAK,KACb,UAAU,kCACL,UAAU,KACb,IAAI,EAAE,WAAW,EACjB,YAAY,EAAE;YACZ,OAAO,EAAE,MAAM,MAAM,CAAC,MAAM,EAAE;WAC/B,EACD,uBAAuB,EAAE;YACvB,OAAO,EAAE,UAAU;YACnB,MAAM;WACP,OAEH,CAAC;MAEH,IAAI,CAAC,0BAA0B,GAAG,MAAM,CAAC,UAAU,CAAC;QAClD,IAAI,CAAC,kCAAkC,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;OACnE,EAAE,IAAI,CAAC,cAAc,CAAC,oCAAoC,CAAC,CAAC;KAC9D;SAAM;MACL,IAAI,CAAC,WAAW,iCACX,IAAI,CAAC,KAAK,KACb,UAAU,EAAE;UACV,IAAI,EAAE,SAAS;UACf,WAAW;UACX,WAAW;UACX,OAAO,EAAE,IAAI,qBAAqB,CAChC,sBAAsB,EACtB,kBAAkB,CAAC,oBAAoB,CACxC;SACF,IACD,CAAC;KACJ;GACF;EAEM,MAAM,OAAO,CAAC,WAAwB;IAC3C,MAAM,EAAE,UAAU,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC;IAClC,MAAM,GAAG,GAAG,WAAW,EAAE,CAAC;IAE1B,IAAI,GAAG,IAAI,IAAI,EAAE;MACf,MAAM,IAAI,0BAA0B,CAClC,6CAA6C,CAC9C,CAAC;KACH;IAED,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,GAAG,kBAAkB,CAAC,GAAG,CAAC,CAAC;IAEtD,IAAI,UAAU,CAAC,WAAW,KAAK,WAAW,EAAE;MAC1C,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;KACvB;SAAM;MACL,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;KACxB;IAED,MAAM,UAAU,GAAoB;MAClC,IAAI,EAAE,YAAY;MAClB,WAAW;MACX,WAAW;KACZ,CAAC;IACF,IAAI,CAAC,WAAW,iCAAM,IAAI,CAAC,KAAK,KAAE,UAAU,EAAE,UAAU,IAAG,CAAC;IAE5D,IAAI;MACF,IAAI,CAAC,GAAG,CAAC,mCAAmC,CAAC,CAAC;MAE9C,IAAI,CAAC,mBAAmB,EAAE,CAAC;;;MAG3B,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC;MACtC,MAAM,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;MAExB,IAAI,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,KAAK,WAAW,EAAE;QAC9C,IAAI,CAAC,WAAW,iCACX,IAAI,CAAC,KAAK,KACb,UAAU,EAAE;YACV,WAAW;YACX,WAAW;YACX,IAAI,EAAE,WAAW;YACjB,YAAY,EAAE,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC,MAAM,EAAE,EAAE;YAChD,uBAAuB,EAAE;cACvB,OAAO,EAAE,CAAC;cACV,MAAM;aACP;WACF,IACD,CAAC;QAEH,IAAI,CAAC,qBAAqB,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;OACtD;KACF;IAAC,OAAO,CAAC,EAAE;MACV,IAAI,CAAC,cAAc,CAAC,CAAC,EAAE;QACrB,IAAI,CAAC,WAAW,iCACX,IAAI,CAAC,KAAK,KACb,UAAU,EAAE;YACV,IAAI,EAAE,SAAS;YACf,WAAW;YACX,WAAW;YACX,OAAO,EAAE,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC;WACpC,IACD,CAAC;QACH,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAC3B,MAAM,CAAC,CAAC;OACT,CAAC,CAAC;KACJ;IAED,IAAI,CAAC,uBAAuB,EAAE,CAAC;GAChC;EAEO,mBAAmB;IACzB,IAAI,IAAI,CAAC,cAAc,IAAI,IAAI,EAAE;MAC/B,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;KAC1C;GACF;EAEO,qBAAqB,CAC3B,WAAwB,EACxB,WAAmB;IAEnB,IAAI,CAAC,mBAAmB,EAAE,CAAC;IAE3B,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,iBAAiB,EAAE;MACjC,IAAI,CAAC,0BAA0B,GAAG,MAAM,CAAC,UAAU,CAAC;QAClD,IAAI,CAAC,kCAAkC,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;QAClE,IAAI,CAAC,0BAA0B,GAAG,SAAS,CAAC;OAC7C,EAAE,IAAI,CAAC,cAAc,CAAC,oCAAoC,CAAC,CAAC;KAC9D;GACF;EAEO,mBAAmB;IACzB,IAAI,IAAI,CAAC,0BAA0B,IAAI,IAAI,EAAE;MAC3C,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;MACrD,IAAI,CAAC,0BAA0B,GAAG,SAAS,CAAC;KAC7C;GACF;EAEO,uBAAuB;IAC7B,IAAI,CAAC,mBAAmB,CACtB,IAAI,CAAC,cAAc,CAAC,sBAAsB;MACxC,mBAAmB,CAAC,yBAAyB,CAChD,CAAC;GACH;EAEO,iCAAiC;IACvC,IAAI,CAAC,mBAAmB,CACtB,IAAI,CAAC,cAAc,CAAC,gCAAgC;MAClD,mBAAmB,CAAC,oCAAoC,CAC3D,CAAC;GACH;EAEO,mBAAmB,CAAC,cAAsB;IAChD,IAAI,CAAC,mBAAmB,EAAE,CAAC;IAE3B,IAAI,CAAC,cAAc,GAAG,MAAM,CAAC,UAAU,CAAC;MACtC,IAAI,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,KAAK,WAAW,EAAE;QAC9C,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;OACjD;KACF,EAAE,cAAc,GAAG,IAAI,CAAC,CAAC;GAC3B;EAEM,eAAe,CAAC,MAA+B;IACpD,MAAM,oBAAoB,GAAG;MAC3B,IAAI,MAAM,CAAC,KAAK,IAAI,IAAI,EAAE;QACxB,IAAI,CAAC,GAAG,CACN,gEAAgE,CACjE,CAAC;QAEF,IAAI;UACF,MAAM,IAAI,CAAC,OAAO,CAAC,MAAM,MAAM,CAAC,KAAK,CAAC,CAAC;SACxC;QAAC,OAAO,CAAC,EAAE;UACV,IAAI,CAAC,cAAc,CAAC,CAAC,EAAE;YACrB,OAAO,CAAC,KAAK,CAAC,2CAA2C,EAAE,CAAC,CAAC,CAAC;WAC/D,CAAC,CAAC;SACJ;OACF;KACF,CAAC;IAEF,MAAM,gBAAgB,GAAG;MACvB,IAAI,CAAC,GAAG,CAAC,4CAA4C,CAAC,CAAC;MACvD,oBAAoB,EAAE,CAAC;KACxB,CAAC;IAEF,oBAAoB,EAAE,CAAC;IAEvB,MAAM,CAAC,gBAAgB,CAAC,YAAY,EAAE,gBAAgB,CAAC,CAAC;IACxD,OAAO;MACL,OAAO,EAAE;QACP,MAAM,CAAC,mBAAmB,CAAC,YAAY,EAAE,gBAAgB,CAAC,CAAC;QAC3D,IAAI,CAAC,UAAU,EAAE,CAAC;OACnB;KACF,CAAC;GACH;EAEM,UAAU,CAAC,KAAK,GAAG,KAAK;IAC7B,IAAI,CAAC,GAAG,CAAC,8CAA8C,KAAK,GAAG,CAAC,CAAC;IAEjE,IAAI,CAAC,mBAAmB,EAAE,CAAC;IAC3B,IAAI,CAAC,mBAAmB,EAAE,CAAC;IAE3B,IAAI,KAAK,EAAE;MACT,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;MACnB,IAAI,CAAC,cAAc,GAAG,EAAE,CAAC;KAC1B;IAED,MAAM,EAAE,UAAU,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC;IAClC,IAAI,UAAU,CAAC,IAAI,KAAK,WAAW,EAAE;MACnC,UAAU,CAAC,YAAY,CAAC,OAAO,EAAE,CAAC;KACnC;IAED,IAAI,CAAC,WAAW,CAAC;MACf,UAAU,EAAE;QACV,IAAI,EAAE,cAAc;QACpB,WAAW,EAAE,UAAU,CAAC,WAAW;QACnC,WAAW,EAAE,UAAU,CAAC,WAAW;OACpC;MACD,WAAW,EAAE,KAAK;MAClB,SAAS,EAAE,KAAK,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS;MAC3C,IAAI,EAAE,KAAK,GAAG,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI;MAClC,UAAU,EAAE,KAAK,GAAG,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU;MACrD,iBAAiB,EAAE,KAAK,GAAG,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,iBAAiB;MACnE,sBAAsB,EAAE,KAAK;UACzB,SAAS;UACT,IAAI,CAAC,KAAK,CAAC,sBAAsB;MACrC,iBAAiB,EAAE,KAAK,GAAG,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,iBAAiB;MACnE,kBAAkB,EAAE,KAAK,GAAG,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,kBAAkB;KACtE,CAAC,CAAC;GACJ;EAEM,MAAM;IACX,IAAI,CAAC,GAAG,CAAC,iCAAiC,CAAC,CAAC;IAE5C,IAAI,CAAC,mBAAmB,EAAE,CAAC;IAC3B,IAAI,CAAC,mBAAmB,EAAE,CAAC;IAE3B,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;IACnB,IAAI,CAAC,cAAc,GAAG,EAAE,CAAC;IAEzB,MAAM,EAAE,UAAU,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC;IAClC,IAAI,UAAU,CAAC,IAAI,KAAK,WAAW,EAAE;MACnC,UAAU,CAAC,YAAY,CAAC,OAAO,EAAE,CAAC;KACnC;IAED,IAAI,CAAC,WAAW,CAAC;MACf,UAAU,EAAE;QACV,IAAI,EAAE,WAAW;QACjB,WAAW,EAAE,UAAU,CAAC,WAAW;QACnC,WAAW,EAAE,UAAU,CAAC,WAAW;OACpC;MACD,WAAW,EAAE,KAAK;MAClB,SAAS,EAAE,CAAC;MACZ,IAAI,EAAE,EAAE;KACT,CAAC,CAAC;GACJ;;;;;;EAOM,MAAM,YAAY,CAAC,EAAU;IAClC,OAAO,IAAI,CAAC,kBAAkB,CAAC,OAAO,GAAG;MACvC,MAAM,MAAM,GAAG,IAAIC,YAAI,EAAE,CAAC;MAC1B,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;MAElB,MAAM,GAAG,GAAG,IAAIC,qCAAmB,EAAE,CAAC;MACtC,GAAG,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;MAEtB,MAAM,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,OAAO,KAC7C,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,GAAG,EAAE,QAAQ,EAAE,OAAO,CAAC,CACjD,CAAC;KACH,CAAC,CAAC;GACJ;;;;;;EAOM,MAAM,UAAU,CAAC,EAAU;IAChC,OAAO,IAAI,CAAC,kBAAkB,CAAC,OAAO,GAAG;MACvC,MAAM,MAAM,GAAG,IAAID,YAAI,EAAE,CAAC;MAC1B,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;MAElB,MAAM,GAAG,GAAG,IAAIE,mCAAiB,EAAE,CAAC;MACpC,GAAG,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;MAEtB,MAAM,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,OAAO,KAC7C,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE,QAAQ,EAAE,OAAO,CAAC,CAC/C,CAAC;KACH,CAAC,CAAC;GACJ;;;;EAKM,MAAM,WAAW;IACtB,OAAO,IAAI,CAAC,kBAAkB,CAAC,OAAO,GAAG;MACvC,MAAM,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,OAAO,KAC7C,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,IAAIC,oCAAkB,EAAE,EAAE,QAAQ,EAAE,OAAO,CAAC,CACrE,CAAC;KACH,CAAC,CAAC;GACJ;;;;EAKM,MAAM,SAAS;IACpB,OAAO,IAAI,CAAC,kBAAkB,CAAC,OAAO,GAAG;MACvC,MAAM,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,OAAO,KAC7C,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,IAAIC,kCAAgB,EAAE,EAAE,QAAQ,EAAE,OAAO,CAAC,CACjE,CAAC;KACH,CAAC,CAAC;GACJ;;;;;;;;;EAUM,MAAM,iBAAiB,CAAC,EAAU;IACvC,OAAO,IAAI,CAAC,kBAAkB,CAAC,OAAO,GAAG;MACvC,MAAM,MAAM,GAAG,IAAIJ,YAAI,EAAE,CAAC;MAC1B,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;MAElB,MAAM,GAAG,GAAG,IAAIK,mCAAiB,EAAE,CAAC;MACpC,GAAG,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;MAEtB,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,YAAY,CACjC,GAAG,EACH,CAAC,QAAQ,EAAE,OAAO,KAAK,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE,QAAQ,EAAE,OAAO,CAAC,CACtE,CAAC;MACF,MAAM,EAAE,cAAc,EAAE,YAAY,EAAE,GAAG,GAAG,CAAC,QAAQ,EAAE,CAAC;MAExD,IAAI,cAAc,EAAE;QAClB,IAAI,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;QAC9B,MAAM,IAAI,CAAC,8BAA8B,EAAE,CAAC;OAC7C;MAED,IAAI,YAAY,IAAI,IAAI,EAAE;QACxB,MAAM,IAAI,6BAA6B,CACrC,kDAAkD,CACnD,CAAC;OACH;MAED,OAAO,YAAY,CAAC,KAAK,CAAC;KAC3B,CAAC,CAAC;GACJ;EAEM,MAAM,kBAAkB,CAAC,MAAc;IAC5C,OAAO,IAAI,CAAC,kBAAkB,CAAC,OAAO,GAAG;MACvC,MAAM,QAAQ,GAAG,IAAIL,YAAI,EAAE,CAAC;MAC5B,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;MACxB,MAAM,GAAG,GAAG,IAAIM,yCAAuB,EAAE,CAAC;MAC1C,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;MAExB,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,YAAY,CACjC,GAAG,EACH,CAAC,QAAQ,EAAE,OAAO,KAChB,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,GAAG,EAAE,QAAQ,EAAE,OAAO,CAAC,CACvD,CAAC;MAEF,OAAO,GAAG,CAAC,QAAQ,EAAE,CAAC,SAAS,CAAC;KACjC,CAAC,CAAC;GACJ;;;;;;;;;;;EAYM,MAAM,SAAS,CAAC,KAAa;IAClC,OAAO,IAAI,CAAC,kBAAkB,CAAC,OAAO,GAAG;;MACvC,IAAI,KAAK,GAAG,CAAC,IAAI,KAAK,GAAG,IAAI,CAAC,QAAQ,GAAG,CAAC,EAAE;QAC1C,OAAO;OACR;MAED,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE;QAC1B,MAAM,MAAM,GAAG,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC;QACrC,IAAI,CAAC,GAAG,CAAC,0BAA0B,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;QACpD,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;QACvD,MAAM,EAAE,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;QAC7B,MAAM,IAAI,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,YAAY,EAAE,IAAI,CAAC,YAAY,EAAE,CAAC;QACjE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QAC5B,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;OAC7B;MAED,OAAM,MAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,0CAAE,GAAG,CAAA,CAAC;KAClC,CAAC,CAAC;GACJ;;;;;;EAOM,iBAAiB,CAAC,MAAc;IACrC,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC;IAChD,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;GAC7B;;;;;;;EAQM,MAAM,UAAU,CACrB,WAAmB,EACnB,SAAiB;IAEjB,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC1D,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC;IACtD,MAAM,CAAC,YAAY,EAAE,UAAU,CAAC,GAAG,IAAI,CAAC,kBAAkB,CACxD,SAAS,EACT,OAAO,CACR,CAAC;IACF,MAAM,SAAS,GAAG,UAAU,GAAG,YAAY,GAAG,CAAC,CAAC;IAChD,MAAM,OAAO,CAAC,GAAG,CACf,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,IAAI,KAAK,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CACzE,CAAC;GACH;;;;EAKM,MAAM,iBAAiB;IAC5B,OAAO,IAAI,CAAC,kBAAkB,CAAC,OAAO,GAAG;MACvC,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,YAAY,CACjC,GAAG,EACH,CAAC,IAAI,EAAE,OAAO;QACZ,MAAM,GAAG,GAAG,IAAIC,4CAA0B,EAAE,CAAC;QAC7C,IAAI,CAAC,MAAM,CAAC,mBAAmB,CAAC,GAAG,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;OACrD,CACF,CAAC;MAEF,OAAO,GAAG,CAAC,WAAW,EAAE,CAAC,GAAG,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;KAC3D,CAAC,CAAC;GACJ;;;;;;;;EASM,MAAM,MAAM,CACjB,IAAY,EACZ,UAA6B,EAAE;IAE/B,OAAO,IAAI,CAAC,kBAAkB,CAAC,OAAO,GAAG;;MACvC,IAAI,CAAC,WAAW,iCACX,IAAI,CAAC,KAAK,KACb,WAAW,EAAE,IAAI,EACjB,UAAU,EAAE,IAAI,KAAK,EAAE,GAAG,IAAI,GAAG,SAAS,IAC1C,CAAC;;;;MAKH,MAAA,IAAI,CAAC,oBAAoB,0CAAE,MAAM,EAAE,CAAC;MACpC,IAAI,CAAC,oBAAoB,GAAG,SAAS,CAAC;MAEtC,IAAI,IAAI,CAAC,KAAK,CAAC,UAAU,KAAK,IAAI,IAAI,IAAI,KAAK,EAAE,EAAE;QACjD,IAAI;UACF,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,YAAY,CACjC,GAAG,EACH,CAAC,QAAQ,EAAE,OAAO;;YAChB,MAAM,GAAG,GAAG,IAAIC,+BAAa,EAAE,CAAC;YAChC,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;YACpB,GAAG,CAAC,WAAW,CAAC,MAAA,OAAO,CAAC,gBAAgB,mCAAI,IAAI,CAAC,CAAC;YAClD,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;YACxC,GAAG,CAAC,oBAAoB,CAAC,CAAC,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC;YACtD,IAAI,OAAO,CAAC,OAAO;cAAE,GAAG,CAAC,kBAAkB,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;YAE7D,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAC5C,GAAG,EACH,QAAQ,EACR,OAAO,CACR,CAAC;WACH,CACF,CAAC;UAEF,MAAM,EAAE,eAAe,EAAE,GAAG,GAAG,CAAC,QAAQ,EAAE,CAAC;UAE3C,IAAI,CAAC,WAAW,iCACX,IAAI,CAAC,KAAK,KACb,iBAAiB,EAAE,eAAe,EAClC,WAAW,EAAE,KAAK,IAClB,CAAC;SACJ;QAAC,OAAO,CAAC,EAAE;UACV,OAAO,CAAC,KAAK,CAAC,0BAA0B,EAAE,CAAC,CAAC,CAAC;UAC7C,IAAI,CAAC,WAAW,iCACX,IAAI,CAAC,KAAK,KACb,WAAW,EAAE,KAAK,IAClB,CAAC;SACJ;OACF;KACF,CAAC,CAAC;GACJ;;;;;;;EAQM,YAAY,CAAC,KAAa;IAC/B,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;GAC9B;;;;;;;;EASM,uBAAuB,CAAC,KAAa,EAAE,GAAW;IACvD,MAAM,CAAC,YAAY,EAAE,UAAU,CAAC,GAAG,IAAI,CAAC,kBAAkB,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IACvE,MAAM,SAAS,GAAG,UAAU,GAAG,YAAY,GAAG,CAAC,CAAC;IAChD,OAAO,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC;OACrC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,YAAY,GAAG,CAAC,CAAC;OAC/B,MAAM,CAAC,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC;GAC/C;;;;;;;EAQM,OAAO,CAAC,KAAa;IAC1B,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;GAC9B;;;;;;;;;;;;EAaM,2BAA2B,CAChC,SAAiB,EACjB,OAAe,EACf,SAAS,GAAG,CAAC;IAEb,MAAM,CAAC,YAAY,EAAE,UAAU,CAAC,GAAG,IAAI,CAAC,kBAAkB,CACxD,SAAS,EACT,OAAO,CACR,CAAC;IACF,MAAM,gBAAgB,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,GAAG,YAAY,EAAE,SAAS,CAAC,CAAC;IACxE,IAAI,IAAI,CAAC,gBAAgB,GAAG,gBAAgB,EAAE;MAC5C,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK;QACpD,MAAM,QAAQ,GACZ,KAAK,GAAG,YAAY,GAAG,YAAY,GAAG,KAAK,GAAG,KAAK,GAAG,UAAU,CAAC;QACnE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC;OAC5B,CAAC,CAAC;MACH,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC;MAEjE,UAAU;SACP,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,MAAM,GAAG,SAAS,CAAC;SAClC,OAAO,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC;MAEtD,IAAI,CAAC,GAAG,CACN,sBAAsB,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,gBAAgB,QAAQ,EAClE,IAAI,CAAC,KAAK,CACX,CAAC;KACH;GACF;EAEM,eAAe,CAAC,IAAmB;IACxC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;IAEzB,IAAI,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,KAAK,WAAW,EAAE;MAC9C,MAAM,CAAC,KAAK,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC,cAAc,CAAC;MACzC,IAAI,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;MAC9B,OAAO,IAAI,CAAC,oBAAoB,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;KAC9C;SAAM;MACL,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;KAC1B;GACF;;;;;;;;;;EAWM,MAAM,oBAAoB,CAAC,KAAa,EAAE,GAAW;IAC1D,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,mBAAmB,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IAE3D,IAAI,CAAC,oBAAoB,EAAE,CAAC;IAE5B,MAAM,IAAI,CAAC,8BAA8B,EAAE,CAAC;GAC7C;;;;;EAMO,SAAS;IACf,OAAO,IAAI,CAAC,kBAAkB,CAAC,CAAC,GAAG;MACjC,MAAM,MAAM,GAAG,IAAI,CAAC,mBAAmB,CAAC,GAAG,EAAE,CAAC,QAAQ;QACpD,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,IAAIC,kCAAgB,EAAE,EAAE,QAAQ,CAAC,CAAC;QACpE,OAAO,GAAG,CAAC;OACZ,CAAC,CAAC;MAEH,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,GAAsB;QACvC,IAAI,GAAG,CAAC,YAAY,EAAE,EAAE;UACtB,IAAI,CAAC,mBAAmB,EAAE,CAAC;UAC3B,IAAI,CAAC,WAAW,iCAAM,IAAI,CAAC,KAAK,KAAE,iBAAiB,EAAE,IAAI,IAAG,CAAC;;;;UAK7D,IAAI,IAAI,CAAC,KAAK,CAAC,kBAAkB,EAAE;YACjC,IAAI,CAAC,GAAG,CACN,wFAAwF,CACzF,CAAC;YAEF,IAAI,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;YAC9B,IAAI,CAAC,8BAA8B,EAAE,CAAC;WACvC;SACF;QAED,IAAI,CAAC,uBAAuB,EAAE,CAAC;QAE/B,MAAM,EAAE,MAAM,EAAE,GAAG,GAAG,CAAC,QAAQ,EAAE,CAAC;;QAGlC,IAAI,CAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,YAAY,KAAI,IAAI,EAAE;UAChC,IAAI,CAAC,WAAW,iCACX,IAAI,CAAC,KAAK,KACb,iBAAiB,EAAE,MAAM,CAAC,YAAY,CAAC,eAAe,IACtD,CAAC;SACJ;QAED,IAAI,CAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,UAAU,KAAI,IAAI,EAAE;UAC9B,IAAI,CAAC,GAAG,CAAC,sBAAsB,EAAE,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;UAC1D,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;UACpD,IAAI,CAAC,8BAA8B,EAAE,CAAC;SACvC;QAED,MAAM,EACJ,UAAU,GAAG,EAAE,EACf,SAAS,GAAG,EAAE,EACd,oBAAoB,GAAG,EAAE,EACzB,cAAc,GAAG,EAAE,EACnB,YAAY,GAAG,EAAE,GAClB,GAAG,CAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,MAAM,KAAI,EAAE,CAAC;QAEzB,IAAI,oBAAoB,CAAC,MAAM,GAAG,CAAC,EAAE;UACnC,IAAI,CAAC,GAAG,CACN,yCAAyC,EACzC,oBAAoB,CACrB,CAAC;UAEF,oBAAoB,CAAC,OAAO,CAAC,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,KAC1C,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE,GAAG,EAAE,OAAO;YACxC,gBAAgB,EAAE,IAAI;WACvB,CAAC,CAAC,CACJ,CAAC;SACH;QAED,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE;UACzB,IAAI,CAAC,GAAG,CAAC,6BAA6B,EAAE,UAAU,CAAC,CAAC;UAEpD,UAAU,CAAC,OAAO,CAAC,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,KAChC,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE,GAAG,EAAE,OAAO;YACxC,OAAO,EAAE,KAAK;YACd,gBAAgB,EAAE,KAAK;WACxB,CAAC,CAAC,CACJ,CAAC;SACH;QAED,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE;UACxB,IAAI,CAAC,GAAG,CAAC,4BAA4B,EAAE,SAAS,CAAC,CAAC;UAElD,SAAS,CAAC,OAAO,CAAC,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,KAC/B,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE,GAAG,EAAE,OAAO;YACxC,OAAO,EAAE,IAAI;YACb,gBAAgB,EAAE,KAAK;WACxB,CAAC,CAAC,CACJ,CAAC;SACH;QAED,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE;UAC7B,IAAI,CAAC,GAAG,CAAC,iCAAiC,EAAE,cAAc,CAAC,CAAC;UAE5D,cAAc,CAAC,OAAO,CAAC,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,KACpC,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC,CAChE,CAAC;SACH;QAED,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE;UAC3B,IAAI,CAAC,GAAG,CAAC,+BAA+B,EAAE,YAAY,CAAC,CAAC;UAExD,YAAY,CAAC,OAAO,CAAC,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,KAClC,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,CAC/D,CAAC;SACH;OACF,CAAC,CAAC;MAEH,MAAM,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC;QACpB,IAAI,CAAC,CAAC,IAAI,KAAK,CAAC,EAAE;UAChB,OAAO,CAAC,KAAK,CACX,+CAA+C,CAAC,CAAC,IAAI,aAAa,CAAC,CAAC,OAAO,EAAE,CAC9E,CAAC;UACF,IAAI,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;SAC/B;OACF,CAAC,CAAC;MAEH,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE;QACf,IAAI,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;QAE9B,IAAI,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,KAAK,WAAW,EAAE;UAC9C,IAAI,CAAC,iCAAiC,EAAE,CAAC;SAC1C;OACF,CAAC,CAAC;MAEH,OAAO,MAAM,CAAC;KACf,CAAC,CAAC;GACJ;EAEO,MAAM,8BAA8B;;IAC1C,MAAM,CAAC,SAAS,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC,sBAAsB;;;IAGtD,MAAA,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,mCAAI,CAAC,EAC3B,MAAA,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,mCAAI,CAAC,CAC5B,CAAC;IAEF,MAAM,KAAK,GAAG,IAAI,CAAC,uBAAuB,CAAC,SAAS,GAAG,CAAC,EAAE,OAAO,GAAG,CAAC,CAAC,CAAC;IACvE,MAAM,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;GAC9D;EAEO,iBAAiB,CACvB,KAAa,EACb,GAAW,EACX,SAA0D;IAE1D,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI;OAChC,KAAK,CAAC,KAAK,EAAE,GAAG,GAAG,CAAC,CAAC;OACrB,GAAG,CAAC,CAAC,GAAG,KACP,WAAW,CAAC,GAAG,CAAC;wCACP,GAAG,KAAE,IAAI,kCAAO,GAAG,CAAC,IAAI,GAAK,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,OACrD,GAAG,CACR,CAAC;IAEJ,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;IAClD,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;IAC/C,MAAM,IAAI,GAAG,CAAC,GAAG,SAAS,EAAE,GAAG,WAAW,EAAE,GAAG,OAAO,CAAC,CAAC;IAExD,IAAI,CAAC,WAAW,iCAAM,IAAI,CAAC,KAAK,KAAE,IAAI,IAAG,CAAC;GAC3C;EAEO,MAAM,gBAAgB,CAAC,IAAU;;IACvC,IAAI;MACF,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC;MAE3B,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;;MAG7C,IAAI,CAAA,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,EAAE,MAAK,IAAI,CAAC,EAAE,EAAE;QAC/B,MAAM,MAAM,GAAG,GAAG,CAAC,SAAS,EAAE,CAAC;QAC/B,MAAM,SAAS,GAAG,GAAG,CAAC,YAAY,EAAE,CAAC;QAErC,MAAM,SAAS,GAAG,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,QAAQ,EAAE,mCAAI,CAAC,CAAC;QAC1C,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC;QAC1C,MAAM,WAAW,GAAG,aAAa,CAC/B,MAAM,EACN,SAAS,EACT,WAAW,CAAC,YAAY,CACzB,CAAC;QAEF,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;QAC/C,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAC/B,KAAK,CAAC,MAAM,GAAG,WAAW,CAAC,MAAM,EACjC,SAAS,CACV,CAAC;QACF,MAAM,IAAI,GAAG,IAAI,KAAK,CACpB,IAAI,CAAC,GAAG,CACN,CAAC,EACD,SAAS,GAAG,KAAK,CAAC,MAAM,GAAG,WAAW,CAAC,MAAM,GAAG,GAAG,CAAC,MAAM,CAC3D,CACF,CAAC;QACF,MAAM,IAAI,GAAG,CAAC,GAAG,KAAK,EAAE,GAAG,WAAW,EAAE,GAAG,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC;QAEzD,IAAI,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,EAAE;UACzD,IAAI,CAAC,mBAAmB,EAAE,CAAC;UAE3B,IAAI,CAAC,WAAW,iCACX,IAAI,CAAC,KAAK,KACb,SAAS,EAAE,SAAS,EACpB,IAAI,EAAE,IAAI,EACV,sBAAsB,EACpB,IAAI,CAAC,KAAK,CAAC,UAAU,IAAI,IAAI;eAC5B,IAAI,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,iBAAiB,KAAK,CAAC,CAAC,IAC3D,CAAC;SACJ;aAAM;UACL,IAAI,CAAC,WAAW,iCACX,IAAI,CAAC,KAAK,KACb,SAAS,EAAE,SAAS,EACpB,IAAI,EAAE,IAAI,EACV,iBAAiB,EACf,IAAI,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,iBAAiB,EACnD,sBAAsB,EACpB,IAAI,CAAC,KAAK,CAAC,UAAU,IAAI,IAAI;eAC5B,IAAI,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,iBAAiB,KAAK,CAAC,CAAC,EAC3D,kBAAkB,EAAE,IAAI,IACxB,CAAC;SACJ;OACF;KACF;IAAC,OAAO,CAAC,EAAE;MACV,MAAM,YAAY,GAAG,CAAC,YAAY,KAAK,GAAG,CAAC,CAAC,QAAQ,EAAE,GAAG,SAAS,CAAC;MACnE,OAAO,CAAC,KAAK,CACX,wCAAwC,IAAI,CAAC,KAAK,KAAK,YAAY,GAAG,CACvE,CAAC;MAEF,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;MAC7C,IAAI,CAAA,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,EAAE,MAAK,IAAI,CAAC,EAAE,EAAE;QAC/B,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;OACjC;KACF;GACF;EAEO,cAAc,CAAC,KAAa;IAClC,IAAI,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,EAAE;MAC5B,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;KAC1B;GACF;EAEO,qBAAqB,CAAC,MAAc;IAC1C,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC;IAErD,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE;MACrC,IAAI,KAAK,IAAI,SAAS,EAAE;QACtB,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;OAC5B;KACF;GACF;EAEO,QAAQ;IACd,OAAO,IAAI,CAAC,KAAK,CAAC;GACnB;EAEO,aAAa,CAAC,IAAW;IAC/B,QACE,IAAI,CAAC,KAAK,CAAC,UAAU,IAAI,IAAI;MAC7B,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI;MACpC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,EACpC;GACH;EAEO,mBAAmB;IACzB,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,EAAE;MAC7B,IAAI,CAAC,iBAAiB,EAAE,CAAC;KAC1B;IAED,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC,UAAU,CAAC;MACpC,IAAI,CAAC,YAAY,GAAG,SAAS,CAAC;MAC9B,IAAI,CAAC,WAAW,iCACX,IAAI,CAAC,QAAQ,EAAE,KAClB,iBAAiB,EAAE,IAAI,IACvB,CAAC;KACJ,EAAE,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC;GACtC;EAEO,iBAAiB;IACvB,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,EAAE;MAC7B,YAAY,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;MAChC,IAAI,CAAC,YAAY,GAAG,SAAS,CAAC;KAC/B;GACF;EAEO,oBAAoB;IAC1B,MAAM,oBAAoB,GAAG,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAEnE,IAAI,oBAAoB,EAAE;MACxB,IAAI,CAAC,WAAW,iCAAM,IAAI,CAAC,KAAK,KAAE,iBAAiB,EAAE,KAAK,IAAG,CAAC;KAC/D;GACF;EAEO,oBAAoB,CAAC,KAAqB;IAChD,MAAM,4BAA4B,GAChC,IAAI,CAAC,KAAK,CAAC,iBAAiB,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC;IAC5D,MAAM,kBAAkB,GACtB,4BAA4B,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAClE,IAAI,kBAAkB,EAAE;MACtB,IAAI,CAAC,iBAAiB,EAAE,CAAC;MACzB,OAAO,IAAI,CAAC;KACb;IACD,OAAO,KAAK,CAAC;GACd;EAEO,WAAW,CAAC,QAAwB;IAC1C,MAAM,oBAAoB,GAAG,IAAI,CAAC,oBAAoB,CAAC,QAAQ,CAAC,CAAC;IAEjE,IAAI,CAAC,KAAK,mCACL,QAAQ,KACX,iBAAiB,EAAE,oBAAoB;UACnC,KAAK;UACL,QAAQ,CAAC,iBAAiB,GAC/B,CAAC;IAEF,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;GACrC;EAEM,gBAAgB,CAAC,MAAc;IACpC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC;IACjD,OAAO,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;GACvC;EAEM,sBAAsB,CAAC,KAAa,EAAE,GAAW;IACtD,MAAM,SAAS,GAAG,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;IAC/C,MAAM,OAAO,GAAG,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC;IAC3C,OAAO,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;GAC7B;EAEO,MAAM,SAAS,CACrB,MAAc,EACd,KAAa,EACb,GAAW;IAEX,OAAO,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,OAAO;MAC9C,MAAM,KAAK,GAAG,IAAIC,qBAAW,EAAE,CAAC;MAChC,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;MACxB,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;MAEtB,MAAM,GAAG,GAAG,IAAIC,gCAAc,EAAE,CAAC;MACjC,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;MACpB,GAAG,CAAC,2BAA2B,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;MAEnD,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;KAC7C,CAAC,CAAC;GACJ;EAEO,YAAY,CAClB,GAAW,EACX,GAGS;IAET,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM;MACjC,MAAM,QAAQ,GAAG,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC;MAE7C,GAAG,CAAC,QAAQ,EAAE,CAAC,GAAG,EAAE,GAAG;QACrB,IAAI,GAAG,IAAI,IAAI,EAAE;UACf,MAAM,CAAC,GAAG,CAAC,CAAC;SACb;aAAM,IAAI,GAAG,IAAI,IAAI,EAAE;UACtB,OAAO,CAAC,GAAG,CAAC,CAAC;SACd;aAAM;UACL,MAAM,CACJ,IAAI,cAAc,CAChB,kDAAkD,CACnD,CACF,CAAC;SACH;OACF,CAAC,CAAC;KACJ,CAAC,CAAC;GACJ;EAEO,mBAAmB,CACzB,GAAW,EACX,GAAmD;IAEnD,MAAM,QAAQ,GAAG,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC;IAC7C,OAAO,GAAG,CAAC,QAAQ,CAAC,CAAC;GACtB;EAEO,iBAAiB,CAAC,GAAW;IACnC,OAAO,IAAIb,sBAAI,CAAC,QAAQ,CAAC;MACvB,aAAa,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,EAAE,CAAC;KACvC,CAAC,CAAC;GACJ;EAEO,MAAM,kBAAkB,CAAI,IAAwB;IAC1D,MAAM,EAAE,UAAU,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC;IAClC,IAAI,UAAU,CAAC,IAAI,KAAK,YAAY,IAAI,UAAU,CAAC,IAAI,KAAK,WAAW,EAAE;MACvE,MAAM,GAAG,GAAG,MAAM,UAAU,CAAC,WAAW,EAAE,CAAC;MAC3C,IAAI,GAAG,IAAI,IAAI,EAAE;QACf,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC;OAClB;WAAM;QACL,MAAM,IAAI,0BAA0B,CAClC,sEAAsE,CACvE,CAAC;OACH;KACF;SAAM,IAAI,UAAU,CAAC,IAAI,KAAK,WAAW,EAAE;MAC1C,MAAM,IAAI,iCAAiC,CACzC,iDAAiD,CAClD,CAAC;KACH;SAAM;MACL,MAAM,IAAI,cAAc,CAAC,+CAA+C,CAAC,CAAC;KAC3E;GACF;EAEO,cAAc,CAAC,KAAc,EAAE,IAAkB;IACvD,IAAI,EAAE,KAAK,YAAY,iCAAiC,CAAC,EAAE;MACzD,IAAI,EAAE,CAAC;KACR;GACF;EAEO,kBAAkB,CACxB,CAAiC;IAEjC,IAAI,kBAAkB,CAAC,CAAC,CAAC,EAAE;MACzB,IAAI,CAAC,CAAC,IAAI,KAAKA,sBAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE;QAC3C,OAAO,IAAI,qBAAqB,CAC9B,qBAAqB,EACrB,kBAAkB,CAAC,mBAAmB,CACvC,CAAC;OACH;WAAM,IAAI,CAAC,CAAC,IAAI,KAAKA,sBAAI,CAAC,IAAI,CAAC,eAAe,EAAE;QAC/C,OAAO,IAAI,qBAAqB,CAC9B,cAAc,EACd,kBAAkB,CAAC,YAAY,CAChC,CAAC;OACH;WAAM,IAAI,CAAC,CAAC,IAAI,KAAKA,sBAAI,CAAC,IAAI,CAAC,OAAO,EAAE;QACvC,OAAO,IAAI,qBAAqB,CAAC,SAAS,EAAE,kBAAkB,CAAC,OAAO,CAAC,CAAC;OACzE;WAAM;QACL,OAAO,IAAI,qBAAqB,CAAC,SAAS,EAAE,kBAAkB,CAAC,OAAO,CAAC,CAAC;OACzE;KACF;SAAM,IAAI,CAAC,YAAY,0BAA0B,EAAE;MAClD,OAAO,IAAI,qBAAqB,CAC9B,cAAc,EACd,kBAAkB,CAAC,YAAY,CAChC,CAAC;KACH;SAAM;MACL,OAAO,IAAI,qBAAqB,CAAC,SAAS,EAAE,kBAAkB,CAAC,OAAO,CAAC,CAAC;KACzE;GACF;EAEO,kBAAkB,CAAC,KAAa,EAAE,GAAW;IACnD,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;GAC/D;EAEO,kBAAkB,CAAC,KAAa;IACtC,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC;GACxD;EAEO,mBAAmB,CAAC,KAAa,EAAE,GAAW;IACpD,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;GACtE;EAED,IAAY,QAAQ;IAClB,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;GACrE;EAEO,GAAG,CAAC,OAAgB,EAAE,GAAG,cAAyB;IACxD,IAAI,IAAI,CAAC,SAAS,EAAE;MAClB,OAAO,CAAC,KAAK,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC;KACxC;GACF;EAEO,gBAAgB,CACtB,UAA2B;IAE3B,OAAO,UAAU,CAAC,IAAI,KAAK,WAAW,CAAC;GACxC;;AAxoCc,6CAAyB,GAAG,CAAC,GAAG,EAAE,CAAC;AACnC,wDAAoC,GAAG,CAAC,CAAC;AACzC,gDAA4B,GAAG,CAAC;;;;","names":["jspb","core_protos_uuid_pb","google_protobuf_wrappers_pb","core_protos_paging_pb","scenetree_protos_domain_pb","require$$0","scenetree_protos_scene_tree_api_pb","SceneTreeAPI","grpc","jwtDecode","Uuid","CollapseNodeRequest","ExpandNodeRequest","CollapseAllRequest","ExpandAllRequest","LocateItemRequest","GetNodeAncestorsRequest","GetAvailableColumnsRequest","FilterRequest","SubscribeRequest","OffsetPager","GetTreeRequest"],"sources":["../../node_modules/@vertexvis/scene-tree-protos/core/protos/paging_pb.js","../../node_modules/@vertexvis/scene-tree-protos/core/protos/uuid_pb.js","../../node_modules/@vertexvis/scene-tree-protos/scenetree/protos/domain_pb.js","../../node_modules/@vertexvis/scene-tree-protos/scenetree/protos/scene_tree_api_pb.js","./src/components/scene-tree/lib/errors.ts","../../node_modules/@vertexvis/scene-tree-protos/scenetree/protos/scene_tree_api_pb_service.js","./src/components/scene-tree/lib/grpc.ts","../../node_modules/jwt-decode/build/jwt-decode.esm.js","./src/components/scene-tree/lib/jwt.ts","./src/components/scene-tree/lib/controller.ts"],"sourcesContent":["/**\n * @fileoverview\n * @enhanceable\n * @suppress {messageConventions} JS Compiler reports an error if a variable or\n * field starts with 'MSG_' and isn't a translatable message.\n * @public\n */\n// GENERATED CODE -- DO NOT EDIT!\n\nvar jspb = require('google-protobuf');\nvar goog = jspb;\nvar global = Function('return this')();\n\ngoog.exportSymbol('proto.vertexvis.protobuf.core.Cursor', null, global);\ngoog.exportSymbol('proto.vertexvis.protobuf.core.OffsetCursor', null, global);\ngoog.exportSymbol('proto.vertexvis.protobuf.core.OffsetPager', null, global);\ngoog.exportSymbol('proto.vertexvis.protobuf.core.Pager', null, global);\n\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.vertexvis.protobuf.core.Pager = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.vertexvis.protobuf.core.Pager, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n proto.vertexvis.protobuf.core.Pager.displayName = 'proto.vertexvis.protobuf.core.Pager';\n}\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto suitable for use in Soy templates.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n * com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS.\n * @param {boolean=} opt_includeInstance Whether to include the JSPB instance\n * for transitional soy proto support: http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.vertexvis.protobuf.core.Pager.prototype.toObject = function(opt_includeInstance) {\n return proto.vertexvis.protobuf.core.Pager.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Whether to include the JSPB\n * instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.vertexvis.protobuf.core.Pager} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.vertexvis.protobuf.core.Pager.toObject = function(includeInstance, msg) {\n var f, obj = {\n limit: jspb.Message.getFieldWithDefault(msg, 1, 0),\n cursor: jspb.Message.getFieldWithDefault(msg, 2, \"\")\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.vertexvis.protobuf.core.Pager}\n */\nproto.vertexvis.protobuf.core.Pager.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.vertexvis.protobuf.core.Pager;\n return proto.vertexvis.protobuf.core.Pager.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.vertexvis.protobuf.core.Pager} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.vertexvis.protobuf.core.Pager}\n */\nproto.vertexvis.protobuf.core.Pager.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {number} */ (reader.readUint32());\n msg.setLimit(value);\n break;\n case 2:\n var value = /** @type {string} */ (reader.readString());\n msg.setCursor(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.vertexvis.protobuf.core.Pager.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.vertexvis.protobuf.core.Pager.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.vertexvis.protobuf.core.Pager} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.vertexvis.protobuf.core.Pager.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getLimit();\n if (f !== 0) {\n writer.writeUint32(\n 1,\n f\n );\n }\n f = message.getCursor();\n if (f.length > 0) {\n writer.writeString(\n 2,\n f\n );\n }\n};\n\n\n/**\n * optional uint32 limit = 1;\n * @return {number}\n */\nproto.vertexvis.protobuf.core.Pager.prototype.getLimit = function() {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 1, 0));\n};\n\n\n/** @param {number} value */\nproto.vertexvis.protobuf.core.Pager.prototype.setLimit = function(value) {\n jspb.Message.setProto3IntField(this, 1, value);\n};\n\n\n/**\n * optional string cursor = 2;\n * @return {string}\n */\nproto.vertexvis.protobuf.core.Pager.prototype.getCursor = function() {\n return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, \"\"));\n};\n\n\n/** @param {string} value */\nproto.vertexvis.protobuf.core.Pager.prototype.setCursor = function(value) {\n jspb.Message.setProto3StringField(this, 2, value);\n};\n\n\n\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.vertexvis.protobuf.core.OffsetPager = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, proto.vertexvis.protobuf.core.OffsetPager.oneofGroups_);\n};\ngoog.inherits(proto.vertexvis.protobuf.core.OffsetPager, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n proto.vertexvis.protobuf.core.OffsetPager.displayName = 'proto.vertexvis.protobuf.core.OffsetPager';\n}\n/**\n * Oneof group definitions for this message. Each group defines the field\n * numbers belonging to that group. When of these fields' value is set, all\n * other fields in the group are cleared. During deserialization, if multiple\n * fields are encountered for a group, only the last value seen will be kept.\n * @private {!Array<!Array<number>>}\n * @const\n */\nproto.vertexvis.protobuf.core.OffsetPager.oneofGroups_ = [[2,3]];\n\n/**\n * @enum {number}\n */\nproto.vertexvis.protobuf.core.OffsetPager.PagerCase = {\n PAGER_NOT_SET: 0,\n CURSOR: 2,\n OFFSET: 3\n};\n\n/**\n * @return {proto.vertexvis.protobuf.core.OffsetPager.PagerCase}\n */\nproto.vertexvis.protobuf.core.OffsetPager.prototype.getPagerCase = function() {\n return /** @type {proto.vertexvis.protobuf.core.OffsetPager.PagerCase} */(jspb.Message.computeOneofCase(this, proto.vertexvis.protobuf.core.OffsetPager.oneofGroups_[0]));\n};\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto suitable for use in Soy templates.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n * com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS.\n * @param {boolean=} opt_includeInstance Whether to include the JSPB instance\n * for transitional soy proto support: http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.vertexvis.protobuf.core.OffsetPager.prototype.toObject = function(opt_includeInstance) {\n return proto.vertexvis.protobuf.core.OffsetPager.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Whether to include the JSPB\n * instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.vertexvis.protobuf.core.OffsetPager} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.vertexvis.protobuf.core.OffsetPager.toObject = function(includeInstance, msg) {\n var f, obj = {\n limit: jspb.Message.getFieldWithDefault(msg, 1, 0),\n cursor: jspb.Message.getFieldWithDefault(msg, 2, \"\"),\n offset: jspb.Message.getFieldWithDefault(msg, 3, 0)\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.vertexvis.protobuf.core.OffsetPager}\n */\nproto.vertexvis.protobuf.core.OffsetPager.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.vertexvis.protobuf.core.OffsetPager;\n return proto.vertexvis.protobuf.core.OffsetPager.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.vertexvis.protobuf.core.OffsetPager} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.vertexvis.protobuf.core.OffsetPager}\n */\nproto.vertexvis.protobuf.core.OffsetPager.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {number} */ (reader.readUint32());\n msg.setLimit(value);\n break;\n case 2:\n var value = /** @type {string} */ (reader.readString());\n msg.setCursor(value);\n break;\n case 3:\n var value = /** @type {number} */ (reader.readUint32());\n msg.setOffset(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.vertexvis.protobuf.core.OffsetPager.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.vertexvis.protobuf.core.OffsetPager.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.vertexvis.protobuf.core.OffsetPager} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.vertexvis.protobuf.core.OffsetPager.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getLimit();\n if (f !== 0) {\n writer.writeUint32(\n 1,\n f\n );\n }\n f = /** @type {string} */ (jspb.Message.getField(message, 2));\n if (f != null) {\n writer.writeString(\n 2,\n f\n );\n }\n f = /** @type {number} */ (jspb.Message.getField(message, 3));\n if (f != null) {\n writer.writeUint32(\n 3,\n f\n );\n }\n};\n\n\n/**\n * optional uint32 limit = 1;\n * @return {number}\n */\nproto.vertexvis.protobuf.core.OffsetPager.prototype.getLimit = function() {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 1, 0));\n};\n\n\n/** @param {number} value */\nproto.vertexvis.protobuf.core.OffsetPager.prototype.setLimit = function(value) {\n jspb.Message.setProto3IntField(this, 1, value);\n};\n\n\n/**\n * optional string cursor = 2;\n * @return {string}\n */\nproto.vertexvis.protobuf.core.OffsetPager.prototype.getCursor = function() {\n return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, \"\"));\n};\n\n\n/** @param {string} value */\nproto.vertexvis.protobuf.core.OffsetPager.prototype.setCursor = function(value) {\n jspb.Message.setOneofField(this, 2, proto.vertexvis.protobuf.core.OffsetPager.oneofGroups_[0], value);\n};\n\n\nproto.vertexvis.protobuf.core.OffsetPager.prototype.clearCursor = function() {\n jspb.Message.setOneofField(this, 2, proto.vertexvis.protobuf.core.OffsetPager.oneofGroups_[0], undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {!boolean}\n */\nproto.vertexvis.protobuf.core.OffsetPager.prototype.hasCursor = function() {\n return jspb.Message.getField(this, 2) != null;\n};\n\n\n/**\n * optional uint32 offset = 3;\n * @return {number}\n */\nproto.vertexvis.protobuf.core.OffsetPager.prototype.getOffset = function() {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 3, 0));\n};\n\n\n/** @param {number} value */\nproto.vertexvis.protobuf.core.OffsetPager.prototype.setOffset = function(value) {\n jspb.Message.setOneofField(this, 3, proto.vertexvis.protobuf.core.OffsetPager.oneofGroups_[0], value);\n};\n\n\nproto.vertexvis.protobuf.core.OffsetPager.prototype.clearOffset = function() {\n jspb.Message.setOneofField(this, 3, proto.vertexvis.protobuf.core.OffsetPager.oneofGroups_[0], undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {!boolean}\n */\nproto.vertexvis.protobuf.core.OffsetPager.prototype.hasOffset = function() {\n return jspb.Message.getField(this, 3) != null;\n};\n\n\n\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.vertexvis.protobuf.core.Cursor = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.vertexvis.protobuf.core.Cursor, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n proto.vertexvis.protobuf.core.Cursor.displayName = 'proto.vertexvis.protobuf.core.Cursor';\n}\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto suitable for use in Soy templates.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n * com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS.\n * @param {boolean=} opt_includeInstance Whether to include the JSPB instance\n * for transitional soy proto support: http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.vertexvis.protobuf.core.Cursor.prototype.toObject = function(opt_includeInstance) {\n return proto.vertexvis.protobuf.core.Cursor.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Whether to include the JSPB\n * instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.vertexvis.protobuf.core.Cursor} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.vertexvis.protobuf.core.Cursor.toObject = function(includeInstance, msg) {\n var f, obj = {\n next: jspb.Message.getFieldWithDefault(msg, 1, \"\")\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.vertexvis.protobuf.core.Cursor}\n */\nproto.vertexvis.protobuf.core.Cursor.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.vertexvis.protobuf.core.Cursor;\n return proto.vertexvis.protobuf.core.Cursor.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.vertexvis.protobuf.core.Cursor} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.vertexvis.protobuf.core.Cursor}\n */\nproto.vertexvis.protobuf.core.Cursor.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {string} */ (reader.readString());\n msg.setNext(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.vertexvis.protobuf.core.Cursor.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.vertexvis.protobuf.core.Cursor.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.vertexvis.protobuf.core.Cursor} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.vertexvis.protobuf.core.Cursor.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getNext();\n if (f.length > 0) {\n writer.writeString(\n 1,\n f\n );\n }\n};\n\n\n/**\n * optional string next = 1;\n * @return {string}\n */\nproto.vertexvis.protobuf.core.Cursor.prototype.getNext = function() {\n return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, \"\"));\n};\n\n\n/** @param {string} value */\nproto.vertexvis.protobuf.core.Cursor.prototype.setNext = function(value) {\n jspb.Message.setProto3StringField(this, 1, value);\n};\n\n\n\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.vertexvis.protobuf.core.OffsetCursor = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.vertexvis.protobuf.core.OffsetCursor, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n proto.vertexvis.protobuf.core.OffsetCursor.displayName = 'proto.vertexvis.protobuf.core.OffsetCursor';\n}\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto suitable for use in Soy templates.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n * com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS.\n * @param {boolean=} opt_includeInstance Whether to include the JSPB instance\n * for transitional soy proto support: http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.vertexvis.protobuf.core.OffsetCursor.prototype.toObject = function(opt_includeInstance) {\n return proto.vertexvis.protobuf.core.OffsetCursor.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Whether to include the JSPB\n * instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.vertexvis.protobuf.core.OffsetCursor} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.vertexvis.protobuf.core.OffsetCursor.toObject = function(includeInstance, msg) {\n var f, obj = {\n total: jspb.Message.getFieldWithDefault(msg, 1, 0),\n next: jspb.Message.getFieldWithDefault(msg, 2, \"\")\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.vertexvis.protobuf.core.OffsetCursor}\n */\nproto.vertexvis.protobuf.core.OffsetCursor.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.vertexvis.protobuf.core.OffsetCursor;\n return proto.vertexvis.protobuf.core.OffsetCursor.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.vertexvis.protobuf.core.OffsetCursor} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.vertexvis.protobuf.core.OffsetCursor}\n */\nproto.vertexvis.protobuf.core.OffsetCursor.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {number} */ (reader.readUint32());\n msg.setTotal(value);\n break;\n case 2:\n var value = /** @type {string} */ (reader.readString());\n msg.setNext(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.vertexvis.protobuf.core.OffsetCursor.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.vertexvis.protobuf.core.OffsetCursor.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.vertexvis.protobuf.core.OffsetCursor} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.vertexvis.protobuf.core.OffsetCursor.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getTotal();\n if (f !== 0) {\n writer.writeUint32(\n 1,\n f\n );\n }\n f = message.getNext();\n if (f.length > 0) {\n writer.writeString(\n 2,\n f\n );\n }\n};\n\n\n/**\n * optional uint32 total = 1;\n * @return {number}\n */\nproto.vertexvis.protobuf.core.OffsetCursor.prototype.getTotal = function() {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 1, 0));\n};\n\n\n/** @param {number} value */\nproto.vertexvis.protobuf.core.OffsetCursor.prototype.setTotal = function(value) {\n jspb.Message.setProto3IntField(this, 1, value);\n};\n\n\n/**\n * optional string next = 2;\n * @return {string}\n */\nproto.vertexvis.protobuf.core.OffsetCursor.prototype.getNext = function() {\n return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, \"\"));\n};\n\n\n/** @param {string} value */\nproto.vertexvis.protobuf.core.OffsetCursor.prototype.setNext = function(value) {\n jspb.Message.setProto3StringField(this, 2, value);\n};\n\n\ngoog.object.extend(exports, proto.vertexvis.protobuf.core);\n","/**\n * @fileoverview\n * @enhanceable\n * @suppress {messageConventions} JS Compiler reports an error if a variable or\n * field starts with 'MSG_' and isn't a translatable message.\n * @public\n */\n// GENERATED CODE -- DO NOT EDIT!\n\nvar jspb = require('google-protobuf');\nvar goog = jspb;\nvar global = Function('return this')();\n\ngoog.exportSymbol('proto.vertexvis.protobuf.core.Uuid', null, global);\ngoog.exportSymbol('proto.vertexvis.protobuf.core.Uuid2l', null, global);\n\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.vertexvis.protobuf.core.Uuid = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.vertexvis.protobuf.core.Uuid, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n proto.vertexvis.protobuf.core.Uuid.displayName = 'proto.vertexvis.protobuf.core.Uuid';\n}\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto suitable for use in Soy templates.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n * com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS.\n * @param {boolean=} opt_includeInstance Whether to include the JSPB instance\n * for transitional soy proto support: http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.vertexvis.protobuf.core.Uuid.prototype.toObject = function(opt_includeInstance) {\n return proto.vertexvis.protobuf.core.Uuid.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Whether to include the JSPB\n * instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.vertexvis.protobuf.core.Uuid} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.vertexvis.protobuf.core.Uuid.toObject = function(includeInstance, msg) {\n var f, obj = {\n hex: jspb.Message.getFieldWithDefault(msg, 1, \"\")\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.vertexvis.protobuf.core.Uuid}\n */\nproto.vertexvis.protobuf.core.Uuid.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.vertexvis.protobuf.core.Uuid;\n return proto.vertexvis.protobuf.core.Uuid.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.vertexvis.protobuf.core.Uuid} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.vertexvis.protobuf.core.Uuid}\n */\nproto.vertexvis.protobuf.core.Uuid.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {string} */ (reader.readString());\n msg.setHex(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.vertexvis.protobuf.core.Uuid.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.vertexvis.protobuf.core.Uuid.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.vertexvis.protobuf.core.Uuid} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.vertexvis.protobuf.core.Uuid.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getHex();\n if (f.length > 0) {\n writer.writeString(\n 1,\n f\n );\n }\n};\n\n\n/**\n * optional string hex = 1;\n * @return {string}\n */\nproto.vertexvis.protobuf.core.Uuid.prototype.getHex = function() {\n return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, \"\"));\n};\n\n\n/** @param {string} value */\nproto.vertexvis.protobuf.core.Uuid.prototype.setHex = function(value) {\n jspb.Message.setProto3StringField(this, 1, value);\n};\n\n\n\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.vertexvis.protobuf.core.Uuid2l = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.vertexvis.protobuf.core.Uuid2l, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n proto.vertexvis.protobuf.core.Uuid2l.displayName = 'proto.vertexvis.protobuf.core.Uuid2l';\n}\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto suitable for use in Soy templates.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n * com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS.\n * @param {boolean=} opt_includeInstance Whether to include the JSPB instance\n * for transitional soy proto support: http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.vertexvis.protobuf.core.Uuid2l.prototype.toObject = function(opt_includeInstance) {\n return proto.vertexvis.protobuf.core.Uuid2l.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Whether to include the JSPB\n * instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.vertexvis.protobuf.core.Uuid2l} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.vertexvis.protobuf.core.Uuid2l.toObject = function(includeInstance, msg) {\n var f, obj = {\n msb: jspb.Message.getFieldWithDefault(msg, 1, \"0\"),\n lsb: jspb.Message.getFieldWithDefault(msg, 2, \"0\")\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.vertexvis.protobuf.core.Uuid2l}\n */\nproto.vertexvis.protobuf.core.Uuid2l.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.vertexvis.protobuf.core.Uuid2l;\n return proto.vertexvis.protobuf.core.Uuid2l.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.vertexvis.protobuf.core.Uuid2l} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.vertexvis.protobuf.core.Uuid2l}\n */\nproto.vertexvis.protobuf.core.Uuid2l.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {string} */ (reader.readSfixed64String());\n msg.setMsb(value);\n break;\n case 2:\n var value = /** @type {string} */ (reader.readSfixed64String());\n msg.setLsb(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.vertexvis.protobuf.core.Uuid2l.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.vertexvis.protobuf.core.Uuid2l.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.vertexvis.protobuf.core.Uuid2l} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.vertexvis.protobuf.core.Uuid2l.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getMsb();\n if (parseInt(f, 10) !== 0) {\n writer.writeSfixed64String(\n 1,\n f\n );\n }\n f = message.getLsb();\n if (parseInt(f, 10) !== 0) {\n writer.writeSfixed64String(\n 2,\n f\n );\n }\n};\n\n\n/**\n * optional sfixed64 msb = 1;\n * @return {string}\n */\nproto.vertexvis.protobuf.core.Uuid2l.prototype.getMsb = function() {\n return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, \"0\"));\n};\n\n\n/** @param {string} value */\nproto.vertexvis.protobuf.core.Uuid2l.prototype.setMsb = function(value) {\n jspb.Message.setProto3StringIntField(this, 1, value);\n};\n\n\n/**\n * optional sfixed64 lsb = 2;\n * @return {string}\n */\nproto.vertexvis.protobuf.core.Uuid2l.prototype.getLsb = function() {\n return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, \"0\"));\n};\n\n\n/** @param {string} value */\nproto.vertexvis.protobuf.core.Uuid2l.prototype.setLsb = function(value) {\n jspb.Message.setProto3StringIntField(this, 2, value);\n};\n\n\ngoog.object.extend(exports, proto.vertexvis.protobuf.core);\n","/**\n * @fileoverview\n * @enhanceable\n * @suppress {messageConventions} JS Compiler reports an error if a variable or\n * field starts with 'MSG_' and isn't a translatable message.\n * @public\n */\n// GENERATED CODE -- DO NOT EDIT!\n\nvar jspb = require('google-protobuf');\nvar goog = jspb;\nvar global = Function('return this')();\n\nvar core_protos_uuid_pb = require('../../core/protos/uuid_pb.js');\nvar google_protobuf_wrappers_pb = require('google-protobuf/google/protobuf/wrappers_pb.js');\ngoog.exportSymbol('proto.vertexvis.protobuf.scenetree.v1alpha1.ColumnKey', null, global);\ngoog.exportSymbol('proto.vertexvis.protobuf.scenetree.v1alpha1.FilterChange', null, global);\ngoog.exportSymbol('proto.vertexvis.protobuf.scenetree.v1alpha1.KeepAlive', null, global);\ngoog.exportSymbol('proto.vertexvis.protobuf.scenetree.v1alpha1.ListChange', null, global);\ngoog.exportSymbol('proto.vertexvis.protobuf.scenetree.v1alpha1.Node', null, global);\ngoog.exportSymbol('proto.vertexvis.protobuf.scenetree.v1alpha1.Range', null, global);\ngoog.exportSymbol('proto.vertexvis.protobuf.scenetree.v1alpha1.StateChange', null, global);\ngoog.exportSymbol('proto.vertexvis.protobuf.scenetree.v1alpha1.TreeChangeType', null, global);\n\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.Node = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, proto.vertexvis.protobuf.scenetree.v1alpha1.Node.repeatedFields_, null);\n};\ngoog.inherits(proto.vertexvis.protobuf.scenetree.v1alpha1.Node, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n proto.vertexvis.protobuf.scenetree.v1alpha1.Node.displayName = 'proto.vertexvis.protobuf.scenetree.v1alpha1.Node';\n}\n/**\n * List of repeated fields within this message type.\n * @private {!Array<number>}\n * @const\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.Node.repeatedFields_ = [10];\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto suitable for use in Soy templates.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n * com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS.\n * @param {boolean=} opt_includeInstance Whether to include the JSPB instance\n * for transitional soy proto support: http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.Node.prototype.toObject = function(opt_includeInstance) {\n return proto.vertexvis.protobuf.scenetree.v1alpha1.Node.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Whether to include the JSPB\n * instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.vertexvis.protobuf.scenetree.v1alpha1.Node} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.Node.toObject = function(includeInstance, msg) {\n var f, obj = {\n id: (f = msg.getId()) && core_protos_uuid_pb.Uuid.toObject(includeInstance, f),\n depth: jspb.Message.getFieldWithDefault(msg, 2, 0),\n name: jspb.Message.getFieldWithDefault(msg, 3, \"\"),\n visible: jspb.Message.getFieldWithDefault(msg, 4, false),\n selected: jspb.Message.getFieldWithDefault(msg, 5, false),\n expanded: jspb.Message.getFieldWithDefault(msg, 6, false),\n isLeaf: jspb.Message.getFieldWithDefault(msg, 7, false),\n suppliedId: (f = msg.getSuppliedId()) && google_protobuf_wrappers_pb.StringValue.toObject(includeInstance, f),\n partiallyVisible: jspb.Message.getFieldWithDefault(msg, 9, false),\n columnsList: jspb.Message.getRepeatedField(msg, 10),\n filterHit: jspb.Message.getFieldWithDefault(msg, 11, false),\n phantom: jspb.Message.getFieldWithDefault(msg, 12, false),\n endItem: jspb.Message.getFieldWithDefault(msg, 13, false)\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.vertexvis.protobuf.scenetree.v1alpha1.Node}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.Node.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.vertexvis.protobuf.scenetree.v1alpha1.Node;\n return proto.vertexvis.protobuf.scenetree.v1alpha1.Node.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.vertexvis.protobuf.scenetree.v1alpha1.Node} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.vertexvis.protobuf.scenetree.v1alpha1.Node}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.Node.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = new core_protos_uuid_pb.Uuid;\n reader.readMessage(value,core_protos_uuid_pb.Uuid.deserializeBinaryFromReader);\n msg.setId(value);\n break;\n case 2:\n var value = /** @type {number} */ (reader.readUint32());\n msg.setDepth(value);\n break;\n case 3:\n var value = /** @type {string} */ (reader.readString());\n msg.setName(value);\n break;\n case 4:\n var value = /** @type {boolean} */ (reader.readBool());\n msg.setVisible(value);\n break;\n case 5:\n var value = /** @type {boolean} */ (reader.readBool());\n msg.setSelected(value);\n break;\n case 6:\n var value = /** @type {boolean} */ (reader.readBool());\n msg.setExpanded(value);\n break;\n case 7:\n var value = /** @type {boolean} */ (reader.readBool());\n msg.setIsLeaf(value);\n break;\n case 8:\n var value = new google_protobuf_wrappers_pb.StringValue;\n reader.readMessage(value,google_protobuf_wrappers_pb.StringValue.deserializeBinaryFromReader);\n msg.setSuppliedId(value);\n break;\n case 9:\n var value = /** @type {boolean} */ (reader.readBool());\n msg.setPartiallyVisible(value);\n break;\n case 10:\n var value = /** @type {string} */ (reader.readString());\n msg.addColumns(value);\n break;\n case 11:\n var value = /** @type {boolean} */ (reader.readBool());\n msg.setFilterHit(value);\n break;\n case 12:\n var value = /** @type {boolean} */ (reader.readBool());\n msg.setPhantom(value);\n break;\n case 13:\n var value = /** @type {boolean} */ (reader.readBool());\n msg.setEndItem(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.Node.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.vertexvis.protobuf.scenetree.v1alpha1.Node.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.vertexvis.protobuf.scenetree.v1alpha1.Node} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.Node.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getId();\n if (f != null) {\n writer.writeMessage(\n 1,\n f,\n core_protos_uuid_pb.Uuid.serializeBinaryToWriter\n );\n }\n f = message.getDepth();\n if (f !== 0) {\n writer.writeUint32(\n 2,\n f\n );\n }\n f = message.getName();\n if (f.length > 0) {\n writer.writeString(\n 3,\n f\n );\n }\n f = message.getVisible();\n if (f) {\n writer.writeBool(\n 4,\n f\n );\n }\n f = message.getSelected();\n if (f) {\n writer.writeBool(\n 5,\n f\n );\n }\n f = message.getExpanded();\n if (f) {\n writer.writeBool(\n 6,\n f\n );\n }\n f = message.getIsLeaf();\n if (f) {\n writer.writeBool(\n 7,\n f\n );\n }\n f = message.getSuppliedId();\n if (f != null) {\n writer.writeMessage(\n 8,\n f,\n google_protobuf_wrappers_pb.StringValue.serializeBinaryToWriter\n );\n }\n f = message.getPartiallyVisible();\n if (f) {\n writer.writeBool(\n 9,\n f\n );\n }\n f = message.getColumnsList();\n if (f.length > 0) {\n writer.writeRepeatedString(\n 10,\n f\n );\n }\n f = message.getFilterHit();\n if (f) {\n writer.writeBool(\n 11,\n f\n );\n }\n f = message.getPhantom();\n if (f) {\n writer.writeBool(\n 12,\n f\n );\n }\n f = message.getEndItem();\n if (f) {\n writer.writeBool(\n 13,\n f\n );\n }\n};\n\n\n/**\n * optional vertexvis.protobuf.core.Uuid id = 1;\n * @return {?proto.vertexvis.protobuf.core.Uuid}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.Node.prototype.getId = function() {\n return /** @type{?proto.vertexvis.protobuf.core.Uuid} */ (\n jspb.Message.getWrapperField(this, core_protos_uuid_pb.Uuid, 1));\n};\n\n\n/** @param {?proto.vertexvis.protobuf.core.Uuid|undefined} value */\nproto.vertexvis.protobuf.scenetree.v1alpha1.Node.prototype.setId = function(value) {\n jspb.Message.setWrapperField(this, 1, value);\n};\n\n\nproto.vertexvis.protobuf.scenetree.v1alpha1.Node.prototype.clearId = function() {\n this.setId(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {!boolean}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.Node.prototype.hasId = function() {\n return jspb.Message.getField(this, 1) != null;\n};\n\n\n/**\n * optional uint32 depth = 2;\n * @return {number}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.Node.prototype.getDepth = function() {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 2, 0));\n};\n\n\n/** @param {number} value */\nproto.vertexvis.protobuf.scenetree.v1alpha1.Node.prototype.setDepth = function(value) {\n jspb.Message.setProto3IntField(this, 2, value);\n};\n\n\n/**\n * optional string name = 3;\n * @return {string}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.Node.prototype.getName = function() {\n return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, \"\"));\n};\n\n\n/** @param {string} value */\nproto.vertexvis.protobuf.scenetree.v1alpha1.Node.prototype.setName = function(value) {\n jspb.Message.setProto3StringField(this, 3, value);\n};\n\n\n/**\n * optional bool visible = 4;\n * Note that Boolean fields may be set to 0/1 when serialized from a Java server.\n * You should avoid comparisons like {@code val === true/false} in those cases.\n * @return {boolean}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.Node.prototype.getVisible = function() {\n return /** @type {boolean} */ (jspb.Message.getFieldWithDefault(this, 4, false));\n};\n\n\n/** @param {boolean} value */\nproto.vertexvis.protobuf.scenetree.v1alpha1.Node.prototype.setVisible = function(value) {\n jspb.Message.setProto3BooleanField(this, 4, value);\n};\n\n\n/**\n * optional bool selected = 5;\n * Note that Boolean fields may be set to 0/1 when serialized from a Java server.\n * You should avoid comparisons like {@code val === true/false} in those cases.\n * @return {boolean}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.Node.prototype.getSelected = function() {\n return /** @type {boolean} */ (jspb.Message.getFieldWithDefault(this, 5, false));\n};\n\n\n/** @param {boolean} value */\nproto.vertexvis.protobuf.scenetree.v1alpha1.Node.prototype.setSelected = function(value) {\n jspb.Message.setProto3BooleanField(this, 5, value);\n};\n\n\n/**\n * optional bool expanded = 6;\n * Note that Boolean fields may be set to 0/1 when serialized from a Java server.\n * You should avoid comparisons like {@code val === true/false} in those cases.\n * @return {boolean}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.Node.prototype.getExpanded = function() {\n return /** @type {boolean} */ (jspb.Message.getFieldWithDefault(this, 6, false));\n};\n\n\n/** @param {boolean} value */\nproto.vertexvis.protobuf.scenetree.v1alpha1.Node.prototype.setExpanded = function(value) {\n jspb.Message.setProto3BooleanField(this, 6, value);\n};\n\n\n/**\n * optional bool is_leaf = 7;\n * Note that Boolean fields may be set to 0/1 when serialized from a Java server.\n * You should avoid comparisons like {@code val === true/false} in those cases.\n * @return {boolean}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.Node.prototype.getIsLeaf = function() {\n return /** @type {boolean} */ (jspb.Message.getFieldWithDefault(this, 7, false));\n};\n\n\n/** @param {boolean} value */\nproto.vertexvis.protobuf.scenetree.v1alpha1.Node.prototype.setIsLeaf = function(value) {\n jspb.Message.setProto3BooleanField(this, 7, value);\n};\n\n\n/**\n * optional google.protobuf.StringValue supplied_id = 8;\n * @return {?proto.google.protobuf.StringValue}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.Node.prototype.getSuppliedId = function() {\n return /** @type{?proto.google.protobuf.StringValue} */ (\n jspb.Message.getWrapperField(this, google_protobuf_wrappers_pb.StringValue, 8));\n};\n\n\n/** @param {?proto.google.protobuf.StringValue|undefined} value */\nproto.vertexvis.protobuf.scenetree.v1alpha1.Node.prototype.setSuppliedId = function(value) {\n jspb.Message.setWrapperField(this, 8, value);\n};\n\n\nproto.vertexvis.protobuf.scenetree.v1alpha1.Node.prototype.clearSuppliedId = function() {\n this.setSuppliedId(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {!boolean}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.Node.prototype.hasSuppliedId = function() {\n return jspb.Message.getField(this, 8) != null;\n};\n\n\n/**\n * optional bool partially_visible = 9;\n * Note that Boolean fields may be set to 0/1 when serialized from a Java server.\n * You should avoid comparisons like {@code val === true/false} in those cases.\n * @return {boolean}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.Node.prototype.getPartiallyVisible = function() {\n return /** @type {boolean} */ (jspb.Message.getFieldWithDefault(this, 9, false));\n};\n\n\n/** @param {boolean} value */\nproto.vertexvis.protobuf.scenetree.v1alpha1.Node.prototype.setPartiallyVisible = function(value) {\n jspb.Message.setProto3BooleanField(this, 9, value);\n};\n\n\n/**\n * repeated string columns = 10;\n * @return {!Array<string>}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.Node.prototype.getColumnsList = function() {\n return /** @type {!Array<string>} */ (jspb.Message.getRepeatedField(this, 10));\n};\n\n\n/** @param {!Array<string>} value */\nproto.vertexvis.protobuf.scenetree.v1alpha1.Node.prototype.setColumnsList = function(value) {\n jspb.Message.setField(this, 10, value || []);\n};\n\n\n/**\n * @param {!string} value\n * @param {number=} opt_index\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.Node.prototype.addColumns = function(value, opt_index) {\n jspb.Message.addToRepeatedField(this, 10, value, opt_index);\n};\n\n\nproto.vertexvis.protobuf.scenetree.v1alpha1.Node.prototype.clearColumnsList = function() {\n this.setColumnsList([]);\n};\n\n\n/**\n * optional bool filter_hit = 11;\n * Note that Boolean fields may be set to 0/1 when serialized from a Java server.\n * You should avoid comparisons like {@code val === true/false} in those cases.\n * @return {boolean}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.Node.prototype.getFilterHit = function() {\n return /** @type {boolean} */ (jspb.Message.getFieldWithDefault(this, 11, false));\n};\n\n\n/** @param {boolean} value */\nproto.vertexvis.protobuf.scenetree.v1alpha1.Node.prototype.setFilterHit = function(value) {\n jspb.Message.setProto3BooleanField(this, 11, value);\n};\n\n\n/**\n * optional bool phantom = 12;\n * Note that Boolean fields may be set to 0/1 when serialized from a Java server.\n * You should avoid comparisons like {@code val === true/false} in those cases.\n * @return {boolean}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.Node.prototype.getPhantom = function() {\n return /** @type {boolean} */ (jspb.Message.getFieldWithDefault(this, 12, false));\n};\n\n\n/** @param {boolean} value */\nproto.vertexvis.protobuf.scenetree.v1alpha1.Node.prototype.setPhantom = function(value) {\n jspb.Message.setProto3BooleanField(this, 12, value);\n};\n\n\n/**\n * optional bool end_item = 13;\n * Note that Boolean fields may be set to 0/1 when serialized from a Java server.\n * You should avoid comparisons like {@code val === true/false} in those cases.\n * @return {boolean}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.Node.prototype.getEndItem = function() {\n return /** @type {boolean} */ (jspb.Message.getFieldWithDefault(this, 13, false));\n};\n\n\n/** @param {boolean} value */\nproto.vertexvis.protobuf.scenetree.v1alpha1.Node.prototype.setEndItem = function(value) {\n jspb.Message.setProto3BooleanField(this, 13, value);\n};\n\n\n\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.ListChange = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.vertexvis.protobuf.scenetree.v1alpha1.ListChange, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n proto.vertexvis.protobuf.scenetree.v1alpha1.ListChange.displayName = 'proto.vertexvis.protobuf.scenetree.v1alpha1.ListChange';\n}\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto suitable for use in Soy templates.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n * com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS.\n * @param {boolean=} opt_includeInstance Whether to include the JSPB instance\n * for transitional soy proto support: http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.ListChange.prototype.toObject = function(opt_includeInstance) {\n return proto.vertexvis.protobuf.scenetree.v1alpha1.ListChange.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Whether to include the JSPB\n * instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.vertexvis.protobuf.scenetree.v1alpha1.ListChange} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.ListChange.toObject = function(includeInstance, msg) {\n var f, obj = {\n start: jspb.Message.getFieldWithDefault(msg, 1, 0)\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.vertexvis.protobuf.scenetree.v1alpha1.ListChange}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.ListChange.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.vertexvis.protobuf.scenetree.v1alpha1.ListChange;\n return proto.vertexvis.protobuf.scenetree.v1alpha1.ListChange.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.vertexvis.protobuf.scenetree.v1alpha1.ListChange} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.vertexvis.protobuf.scenetree.v1alpha1.ListChange}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.ListChange.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {number} */ (reader.readInt32());\n msg.setStart(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.ListChange.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.vertexvis.protobuf.scenetree.v1alpha1.ListChange.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.vertexvis.protobuf.scenetree.v1alpha1.ListChange} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.ListChange.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getStart();\n if (f !== 0) {\n writer.writeInt32(\n 1,\n f\n );\n }\n};\n\n\n/**\n * optional int32 start = 1;\n * @return {number}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.ListChange.prototype.getStart = function() {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 1, 0));\n};\n\n\n/** @param {number} value */\nproto.vertexvis.protobuf.scenetree.v1alpha1.ListChange.prototype.setStart = function(value) {\n jspb.Message.setProto3IntField(this, 1, value);\n};\n\n\n\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.Range = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.vertexvis.protobuf.scenetree.v1alpha1.Range, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n proto.vertexvis.protobuf.scenetree.v1alpha1.Range.displayName = 'proto.vertexvis.protobuf.scenetree.v1alpha1.Range';\n}\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto suitable for use in Soy templates.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n * com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS.\n * @param {boolean=} opt_includeInstance Whether to include the JSPB instance\n * for transitional soy proto support: http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.Range.prototype.toObject = function(opt_includeInstance) {\n return proto.vertexvis.protobuf.scenetree.v1alpha1.Range.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Whether to include the JSPB\n * instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.vertexvis.protobuf.scenetree.v1alpha1.Range} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.Range.toObject = function(includeInstance, msg) {\n var f, obj = {\n start: jspb.Message.getFieldWithDefault(msg, 1, 0),\n end: jspb.Message.getFieldWithDefault(msg, 2, 0)\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.vertexvis.protobuf.scenetree.v1alpha1.Range}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.Range.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.vertexvis.protobuf.scenetree.v1alpha1.Range;\n return proto.vertexvis.protobuf.scenetree.v1alpha1.Range.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.vertexvis.protobuf.scenetree.v1alpha1.Range} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.vertexvis.protobuf.scenetree.v1alpha1.Range}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.Range.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {number} */ (reader.readInt32());\n msg.setStart(value);\n break;\n case 2:\n var value = /** @type {number} */ (reader.readInt32());\n msg.setEnd(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.Range.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.vertexvis.protobuf.scenetree.v1alpha1.Range.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.vertexvis.protobuf.scenetree.v1alpha1.Range} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.Range.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getStart();\n if (f !== 0) {\n writer.writeInt32(\n 1,\n f\n );\n }\n f = message.getEnd();\n if (f !== 0) {\n writer.writeInt32(\n 2,\n f\n );\n }\n};\n\n\n/**\n * optional int32 start = 1;\n * @return {number}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.Range.prototype.getStart = function() {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 1, 0));\n};\n\n\n/** @param {number} value */\nproto.vertexvis.protobuf.scenetree.v1alpha1.Range.prototype.setStart = function(value) {\n jspb.Message.setProto3IntField(this, 1, value);\n};\n\n\n/**\n * optional int32 end = 2;\n * @return {number}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.Range.prototype.getEnd = function() {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 2, 0));\n};\n\n\n/** @param {number} value */\nproto.vertexvis.protobuf.scenetree.v1alpha1.Range.prototype.setEnd = function(value) {\n jspb.Message.setProto3IntField(this, 2, value);\n};\n\n\n\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.StateChange = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, proto.vertexvis.protobuf.scenetree.v1alpha1.StateChange.repeatedFields_, null);\n};\ngoog.inherits(proto.vertexvis.protobuf.scenetree.v1alpha1.StateChange, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n proto.vertexvis.protobuf.scenetree.v1alpha1.StateChange.displayName = 'proto.vertexvis.protobuf.scenetree.v1alpha1.StateChange';\n}\n/**\n * List of repeated fields within this message type.\n * @private {!Array<number>}\n * @const\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.StateChange.repeatedFields_ = [1,2,3,4,5];\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto suitable for use in Soy templates.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n * com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS.\n * @param {boolean=} opt_includeInstance Whether to include the JSPB instance\n * for transitional soy proto support: http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.StateChange.prototype.toObject = function(opt_includeInstance) {\n return proto.vertexvis.protobuf.scenetree.v1alpha1.StateChange.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Whether to include the JSPB\n * instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.vertexvis.protobuf.scenetree.v1alpha1.StateChange} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.StateChange.toObject = function(includeInstance, msg) {\n var f, obj = {\n hiddenList: jspb.Message.toObjectList(msg.getHiddenList(),\n proto.vertexvis.protobuf.scenetree.v1alpha1.Range.toObject, includeInstance),\n shownList: jspb.Message.toObjectList(msg.getShownList(),\n proto.vertexvis.protobuf.scenetree.v1alpha1.Range.toObject, includeInstance),\n selectedList: jspb.Message.toObjectList(msg.getSelectedList(),\n proto.vertexvis.protobuf.scenetree.v1alpha1.Range.toObject, includeInstance),\n deselectedList: jspb.Message.toObjectList(msg.getDeselectedList(),\n proto.vertexvis.protobuf.scenetree.v1alpha1.Range.toObject, includeInstance),\n partiallyVisibleList: jspb.Message.toObjectList(msg.getPartiallyVisibleList(),\n proto.vertexvis.protobuf.scenetree.v1alpha1.Range.toObject, includeInstance)\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.vertexvis.protobuf.scenetree.v1alpha1.StateChange}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.StateChange.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.vertexvis.protobuf.scenetree.v1alpha1.StateChange;\n return proto.vertexvis.protobuf.scenetree.v1alpha1.StateChange.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.vertexvis.protobuf.scenetree.v1alpha1.StateChange} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.vertexvis.protobuf.scenetree.v1alpha1.StateChange}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.StateChange.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = new proto.vertexvis.protobuf.scenetree.v1alpha1.Range;\n reader.readMessage(value,proto.vertexvis.protobuf.scenetree.v1alpha1.Range.deserializeBinaryFromReader);\n msg.addHidden(value);\n break;\n case 2:\n var value = new proto.vertexvis.protobuf.scenetree.v1alpha1.Range;\n reader.readMessage(value,proto.vertexvis.protobuf.scenetree.v1alpha1.Range.deserializeBinaryFromReader);\n msg.addShown(value);\n break;\n case 3:\n var value = new proto.vertexvis.protobuf.scenetree.v1alpha1.Range;\n reader.readMessage(value,proto.vertexvis.protobuf.scenetree.v1alpha1.Range.deserializeBinaryFromReader);\n msg.addSelected(value);\n break;\n case 4:\n var value = new proto.vertexvis.protobuf.scenetree.v1alpha1.Range;\n reader.readMessage(value,proto.vertexvis.protobuf.scenetree.v1alpha1.Range.deserializeBinaryFromReader);\n msg.addDeselected(value);\n break;\n case 5:\n var value = new proto.vertexvis.protobuf.scenetree.v1alpha1.Range;\n reader.readMessage(value,proto.vertexvis.protobuf.scenetree.v1alpha1.Range.deserializeBinaryFromReader);\n msg.addPartiallyVisible(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.StateChange.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.vertexvis.protobuf.scenetree.v1alpha1.StateChange.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.vertexvis.protobuf.scenetree.v1alpha1.StateChange} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.StateChange.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getHiddenList();\n if (f.length > 0) {\n writer.writeRepeatedMessage(\n 1,\n f,\n proto.vertexvis.protobuf.scenetree.v1alpha1.Range.serializeBinaryToWriter\n );\n }\n f = message.getShownList();\n if (f.length > 0) {\n writer.writeRepeatedMessage(\n 2,\n f,\n proto.vertexvis.protobuf.scenetree.v1alpha1.Range.serializeBinaryToWriter\n );\n }\n f = message.getSelectedList();\n if (f.length > 0) {\n writer.writeRepeatedMessage(\n 3,\n f,\n proto.vertexvis.protobuf.scenetree.v1alpha1.Range.serializeBinaryToWriter\n );\n }\n f = message.getDeselectedList();\n if (f.length > 0) {\n writer.writeRepeatedMessage(\n 4,\n f,\n proto.vertexvis.protobuf.scenetree.v1alpha1.Range.serializeBinaryToWriter\n );\n }\n f = message.getPartiallyVisibleList();\n if (f.length > 0) {\n writer.writeRepeatedMessage(\n 5,\n f,\n proto.vertexvis.protobuf.scenetree.v1alpha1.Range.serializeBinaryToWriter\n );\n }\n};\n\n\n/**\n * repeated Range hidden = 1;\n * @return {!Array<!proto.vertexvis.protobuf.scenetree.v1alpha1.Range>}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.StateChange.prototype.getHiddenList = function() {\n return /** @type{!Array<!proto.vertexvis.protobuf.scenetree.v1alpha1.Range>} */ (\n jspb.Message.getRepeatedWrapperField(this, proto.vertexvis.protobuf.scenetree.v1alpha1.Range, 1));\n};\n\n\n/** @param {!Array<!proto.vertexvis.protobuf.scenetree.v1alpha1.Range>} value */\nproto.vertexvis.protobuf.scenetree.v1alpha1.StateChange.prototype.setHiddenList = function(value) {\n jspb.Message.setRepeatedWrapperField(this, 1, value);\n};\n\n\n/**\n * @param {!proto.vertexvis.protobuf.scenetree.v1alpha1.Range=} opt_value\n * @param {number=} opt_index\n * @return {!proto.vertexvis.protobuf.scenetree.v1alpha1.Range}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.StateChange.prototype.addHidden = function(opt_value, opt_index) {\n return jspb.Message.addToRepeatedWrapperField(this, 1, opt_value, proto.vertexvis.protobuf.scenetree.v1alpha1.Range, opt_index);\n};\n\n\nproto.vertexvis.protobuf.scenetree.v1alpha1.StateChange.prototype.clearHiddenList = function() {\n this.setHiddenList([]);\n};\n\n\n/**\n * repeated Range shown = 2;\n * @return {!Array<!proto.vertexvis.protobuf.scenetree.v1alpha1.Range>}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.StateChange.prototype.getShownList = function() {\n return /** @type{!Array<!proto.vertexvis.protobuf.scenetree.v1alpha1.Range>} */ (\n jspb.Message.getRepeatedWrapperField(this, proto.vertexvis.protobuf.scenetree.v1alpha1.Range, 2));\n};\n\n\n/** @param {!Array<!proto.vertexvis.protobuf.scenetree.v1alpha1.Range>} value */\nproto.vertexvis.protobuf.scenetree.v1alpha1.StateChange.prototype.setShownList = function(value) {\n jspb.Message.setRepeatedWrapperField(this, 2, value);\n};\n\n\n/**\n * @param {!proto.vertexvis.protobuf.scenetree.v1alpha1.Range=} opt_value\n * @param {number=} opt_index\n * @return {!proto.vertexvis.protobuf.scenetree.v1alpha1.Range}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.StateChange.prototype.addShown = function(opt_value, opt_index) {\n return jspb.Message.addToRepeatedWrapperField(this, 2, opt_value, proto.vertexvis.protobuf.scenetree.v1alpha1.Range, opt_index);\n};\n\n\nproto.vertexvis.protobuf.scenetree.v1alpha1.StateChange.prototype.clearShownList = function() {\n this.setShownList([]);\n};\n\n\n/**\n * repeated Range selected = 3;\n * @return {!Array<!proto.vertexvis.protobuf.scenetree.v1alpha1.Range>}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.StateChange.prototype.getSelectedList = function() {\n return /** @type{!Array<!proto.vertexvis.protobuf.scenetree.v1alpha1.Range>} */ (\n jspb.Message.getRepeatedWrapperField(this, proto.vertexvis.protobuf.scenetree.v1alpha1.Range, 3));\n};\n\n\n/** @param {!Array<!proto.vertexvis.protobuf.scenetree.v1alpha1.Range>} value */\nproto.vertexvis.protobuf.scenetree.v1alpha1.StateChange.prototype.setSelectedList = function(value) {\n jspb.Message.setRepeatedWrapperField(this, 3, value);\n};\n\n\n/**\n * @param {!proto.vertexvis.protobuf.scenetree.v1alpha1.Range=} opt_value\n * @param {number=} opt_index\n * @return {!proto.vertexvis.protobuf.scenetree.v1alpha1.Range}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.StateChange.prototype.addSelected = function(opt_value, opt_index) {\n return jspb.Message.addToRepeatedWrapperField(this, 3, opt_value, proto.vertexvis.protobuf.scenetree.v1alpha1.Range, opt_index);\n};\n\n\nproto.vertexvis.protobuf.scenetree.v1alpha1.StateChange.prototype.clearSelectedList = function() {\n this.setSelectedList([]);\n};\n\n\n/**\n * repeated Range deselected = 4;\n * @return {!Array<!proto.vertexvis.protobuf.scenetree.v1alpha1.Range>}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.StateChange.prototype.getDeselectedList = function() {\n return /** @type{!Array<!proto.vertexvis.protobuf.scenetree.v1alpha1.Range>} */ (\n jspb.Message.getRepeatedWrapperField(this, proto.vertexvis.protobuf.scenetree.v1alpha1.Range, 4));\n};\n\n\n/** @param {!Array<!proto.vertexvis.protobuf.scenetree.v1alpha1.Range>} value */\nproto.vertexvis.protobuf.scenetree.v1alpha1.StateChange.prototype.setDeselectedList = function(value) {\n jspb.Message.setRepeatedWrapperField(this, 4, value);\n};\n\n\n/**\n * @param {!proto.vertexvis.protobuf.scenetree.v1alpha1.Range=} opt_value\n * @param {number=} opt_index\n * @return {!proto.vertexvis.protobuf.scenetree.v1alpha1.Range}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.StateChange.prototype.addDeselected = function(opt_value, opt_index) {\n return jspb.Message.addToRepeatedWrapperField(this, 4, opt_value, proto.vertexvis.protobuf.scenetree.v1alpha1.Range, opt_index);\n};\n\n\nproto.vertexvis.protobuf.scenetree.v1alpha1.StateChange.prototype.clearDeselectedList = function() {\n this.setDeselectedList([]);\n};\n\n\n/**\n * repeated Range partially_visible = 5;\n * @return {!Array<!proto.vertexvis.protobuf.scenetree.v1alpha1.Range>}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.StateChange.prototype.getPartiallyVisibleList = function() {\n return /** @type{!Array<!proto.vertexvis.protobuf.scenetree.v1alpha1.Range>} */ (\n jspb.Message.getRepeatedWrapperField(this, proto.vertexvis.protobuf.scenetree.v1alpha1.Range, 5));\n};\n\n\n/** @param {!Array<!proto.vertexvis.protobuf.scenetree.v1alpha1.Range>} value */\nproto.vertexvis.protobuf.scenetree.v1alpha1.StateChange.prototype.setPartiallyVisibleList = function(value) {\n jspb.Message.setRepeatedWrapperField(this, 5, value);\n};\n\n\n/**\n * @param {!proto.vertexvis.protobuf.scenetree.v1alpha1.Range=} opt_value\n * @param {number=} opt_index\n * @return {!proto.vertexvis.protobuf.scenetree.v1alpha1.Range}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.StateChange.prototype.addPartiallyVisible = function(opt_value, opt_index) {\n return jspb.Message.addToRepeatedWrapperField(this, 5, opt_value, proto.vertexvis.protobuf.scenetree.v1alpha1.Range, opt_index);\n};\n\n\nproto.vertexvis.protobuf.scenetree.v1alpha1.StateChange.prototype.clearPartiallyVisibleList = function() {\n this.setPartiallyVisibleList([]);\n};\n\n\n\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.KeepAlive = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.vertexvis.protobuf.scenetree.v1alpha1.KeepAlive, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n proto.vertexvis.protobuf.scenetree.v1alpha1.KeepAlive.displayName = 'proto.vertexvis.protobuf.scenetree.v1alpha1.KeepAlive';\n}\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto suitable for use in Soy templates.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n * com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS.\n * @param {boolean=} opt_includeInstance Whether to include the JSPB instance\n * for transitional soy proto support: http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.KeepAlive.prototype.toObject = function(opt_includeInstance) {\n return proto.vertexvis.protobuf.scenetree.v1alpha1.KeepAlive.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Whether to include the JSPB\n * instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.vertexvis.protobuf.scenetree.v1alpha1.KeepAlive} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.KeepAlive.toObject = function(includeInstance, msg) {\n var f, obj = {\n\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.vertexvis.protobuf.scenetree.v1alpha1.KeepAlive}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.KeepAlive.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.vertexvis.protobuf.scenetree.v1alpha1.KeepAlive;\n return proto.vertexvis.protobuf.scenetree.v1alpha1.KeepAlive.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.vertexvis.protobuf.scenetree.v1alpha1.KeepAlive} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.vertexvis.protobuf.scenetree.v1alpha1.KeepAlive}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.KeepAlive.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.KeepAlive.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.vertexvis.protobuf.scenetree.v1alpha1.KeepAlive.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.vertexvis.protobuf.scenetree.v1alpha1.KeepAlive} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.KeepAlive.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n};\n\n\n\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.FilterChange = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.vertexvis.protobuf.scenetree.v1alpha1.FilterChange, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n proto.vertexvis.protobuf.scenetree.v1alpha1.FilterChange.displayName = 'proto.vertexvis.protobuf.scenetree.v1alpha1.FilterChange';\n}\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto suitable for use in Soy templates.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n * com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS.\n * @param {boolean=} opt_includeInstance Whether to include the JSPB instance\n * for transitional soy proto support: http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.FilterChange.prototype.toObject = function(opt_includeInstance) {\n return proto.vertexvis.protobuf.scenetree.v1alpha1.FilterChange.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Whether to include the JSPB\n * instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.vertexvis.protobuf.scenetree.v1alpha1.FilterChange} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.FilterChange.toObject = function(includeInstance, msg) {\n var f, obj = {\n numberOfResults: jspb.Message.getFieldWithDefault(msg, 1, 0)\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.vertexvis.protobuf.scenetree.v1alpha1.FilterChange}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.FilterChange.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.vertexvis.protobuf.scenetree.v1alpha1.FilterChange;\n return proto.vertexvis.protobuf.scenetree.v1alpha1.FilterChange.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.vertexvis.protobuf.scenetree.v1alpha1.FilterChange} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.vertexvis.protobuf.scenetree.v1alpha1.FilterChange}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.FilterChange.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {number} */ (reader.readInt32());\n msg.setNumberOfResults(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.FilterChange.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.vertexvis.protobuf.scenetree.v1alpha1.FilterChange.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.vertexvis.protobuf.scenetree.v1alpha1.FilterChange} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.FilterChange.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getNumberOfResults();\n if (f !== 0) {\n writer.writeInt32(\n 1,\n f\n );\n }\n};\n\n\n/**\n * optional int32 number_of_results = 1;\n * @return {number}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.FilterChange.prototype.getNumberOfResults = function() {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 1, 0));\n};\n\n\n/** @param {number} value */\nproto.vertexvis.protobuf.scenetree.v1alpha1.FilterChange.prototype.setNumberOfResults = function(value) {\n jspb.Message.setProto3IntField(this, 1, value);\n};\n\n\n\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.TreeChangeType = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, proto.vertexvis.protobuf.scenetree.v1alpha1.TreeChangeType.oneofGroups_);\n};\ngoog.inherits(proto.vertexvis.protobuf.scenetree.v1alpha1.TreeChangeType, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n proto.vertexvis.protobuf.scenetree.v1alpha1.TreeChangeType.displayName = 'proto.vertexvis.protobuf.scenetree.v1alpha1.TreeChangeType';\n}\n/**\n * Oneof group definitions for this message. Each group defines the field\n * numbers belonging to that group. When of these fields' value is set, all\n * other fields in the group are cleared. During deserialization, if multiple\n * fields are encountered for a group, only the last value seen will be kept.\n * @private {!Array<!Array<number>>}\n * @const\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.TreeChangeType.oneofGroups_ = [[1,2,3,4]];\n\n/**\n * @enum {number}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.TreeChangeType.SealedValueCase = {\n SEALED_VALUE_NOT_SET: 0,\n LIST_CHANGE: 1,\n RANGES: 2,\n KEEP_ALIVE: 3,\n FILTER_CHANGE: 4\n};\n\n/**\n * @return {proto.vertexvis.protobuf.scenetree.v1alpha1.TreeChangeType.SealedValueCase}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.TreeChangeType.prototype.getSealedValueCase = function() {\n return /** @type {proto.vertexvis.protobuf.scenetree.v1alpha1.TreeChangeType.SealedValueCase} */(jspb.Message.computeOneofCase(this, proto.vertexvis.protobuf.scenetree.v1alpha1.TreeChangeType.oneofGroups_[0]));\n};\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto suitable for use in Soy templates.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n * com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS.\n * @param {boolean=} opt_includeInstance Whether to include the JSPB instance\n * for transitional soy proto support: http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.TreeChangeType.prototype.toObject = function(opt_includeInstance) {\n return proto.vertexvis.protobuf.scenetree.v1alpha1.TreeChangeType.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Whether to include the JSPB\n * instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.vertexvis.protobuf.scenetree.v1alpha1.TreeChangeType} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.TreeChangeType.toObject = function(includeInstance, msg) {\n var f, obj = {\n listChange: (f = msg.getListChange()) && proto.vertexvis.protobuf.scenetree.v1alpha1.ListChange.toObject(includeInstance, f),\n ranges: (f = msg.getRanges()) && proto.vertexvis.protobuf.scenetree.v1alpha1.StateChange.toObject(includeInstance, f),\n keepAlive: (f = msg.getKeepAlive()) && proto.vertexvis.protobuf.scenetree.v1alpha1.KeepAlive.toObject(includeInstance, f),\n filterChange: (f = msg.getFilterChange()) && proto.vertexvis.protobuf.scenetree.v1alpha1.FilterChange.toObject(includeInstance, f)\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.vertexvis.protobuf.scenetree.v1alpha1.TreeChangeType}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.TreeChangeType.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.vertexvis.protobuf.scenetree.v1alpha1.TreeChangeType;\n return proto.vertexvis.protobuf.scenetree.v1alpha1.TreeChangeType.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.vertexvis.protobuf.scenetree.v1alpha1.TreeChangeType} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.vertexvis.protobuf.scenetree.v1alpha1.TreeChangeType}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.TreeChangeType.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = new proto.vertexvis.protobuf.scenetree.v1alpha1.ListChange;\n reader.readMessage(value,proto.vertexvis.protobuf.scenetree.v1alpha1.ListChange.deserializeBinaryFromReader);\n msg.setListChange(value);\n break;\n case 2:\n var value = new proto.vertexvis.protobuf.scenetree.v1alpha1.StateChange;\n reader.readMessage(value,proto.vertexvis.protobuf.scenetree.v1alpha1.StateChange.deserializeBinaryFromReader);\n msg.setRanges(value);\n break;\n case 3:\n var value = new proto.vertexvis.protobuf.scenetree.v1alpha1.KeepAlive;\n reader.readMessage(value,proto.vertexvis.protobuf.scenetree.v1alpha1.KeepAlive.deserializeBinaryFromReader);\n msg.setKeepAlive(value);\n break;\n case 4:\n var value = new proto.vertexvis.protobuf.scenetree.v1alpha1.FilterChange;\n reader.readMessage(value,proto.vertexvis.protobuf.scenetree.v1alpha1.FilterChange.deserializeBinaryFromReader);\n msg.setFilterChange(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.TreeChangeType.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.vertexvis.protobuf.scenetree.v1alpha1.TreeChangeType.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.vertexvis.protobuf.scenetree.v1alpha1.TreeChangeType} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.TreeChangeType.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getListChange();\n if (f != null) {\n writer.writeMessage(\n 1,\n f,\n proto.vertexvis.protobuf.scenetree.v1alpha1.ListChange.serializeBinaryToWriter\n );\n }\n f = message.getRanges();\n if (f != null) {\n writer.writeMessage(\n 2,\n f,\n proto.vertexvis.protobuf.scenetree.v1alpha1.StateChange.serializeBinaryToWriter\n );\n }\n f = message.getKeepAlive();\n if (f != null) {\n writer.writeMessage(\n 3,\n f,\n proto.vertexvis.protobuf.scenetree.v1alpha1.KeepAlive.serializeBinaryToWriter\n );\n }\n f = message.getFilterChange();\n if (f != null) {\n writer.writeMessage(\n 4,\n f,\n proto.vertexvis.protobuf.scenetree.v1alpha1.FilterChange.serializeBinaryToWriter\n );\n }\n};\n\n\n/**\n * optional ListChange list_change = 1;\n * @return {?proto.vertexvis.protobuf.scenetree.v1alpha1.ListChange}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.TreeChangeType.prototype.getListChange = function() {\n return /** @type{?proto.vertexvis.protobuf.scenetree.v1alpha1.ListChange} */ (\n jspb.Message.getWrapperField(this, proto.vertexvis.protobuf.scenetree.v1alpha1.ListChange, 1));\n};\n\n\n/** @param {?proto.vertexvis.protobuf.scenetree.v1alpha1.ListChange|undefined} value */\nproto.vertexvis.protobuf.scenetree.v1alpha1.TreeChangeType.prototype.setListChange = function(value) {\n jspb.Message.setOneofWrapperField(this, 1, proto.vertexvis.protobuf.scenetree.v1alpha1.TreeChangeType.oneofGroups_[0], value);\n};\n\n\nproto.vertexvis.protobuf.scenetree.v1alpha1.TreeChangeType.prototype.clearListChange = function() {\n this.setListChange(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {!boolean}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.TreeChangeType.prototype.hasListChange = function() {\n return jspb.Message.getField(this, 1) != null;\n};\n\n\n/**\n * optional StateChange ranges = 2;\n * @return {?proto.vertexvis.protobuf.scenetree.v1alpha1.StateChange}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.TreeChangeType.prototype.getRanges = function() {\n return /** @type{?proto.vertexvis.protobuf.scenetree.v1alpha1.StateChange} */ (\n jspb.Message.getWrapperField(this, proto.vertexvis.protobuf.scenetree.v1alpha1.StateChange, 2));\n};\n\n\n/** @param {?proto.vertexvis.protobuf.scenetree.v1alpha1.StateChange|undefined} value */\nproto.vertexvis.protobuf.scenetree.v1alpha1.TreeChangeType.prototype.setRanges = function(value) {\n jspb.Message.setOneofWrapperField(this, 2, proto.vertexvis.protobuf.scenetree.v1alpha1.TreeChangeType.oneofGroups_[0], value);\n};\n\n\nproto.vertexvis.protobuf.scenetree.v1alpha1.TreeChangeType.prototype.clearRanges = function() {\n this.setRanges(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {!boolean}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.TreeChangeType.prototype.hasRanges = function() {\n return jspb.Message.getField(this, 2) != null;\n};\n\n\n/**\n * optional KeepAlive keep_alive = 3;\n * @return {?proto.vertexvis.protobuf.scenetree.v1alpha1.KeepAlive}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.TreeChangeType.prototype.getKeepAlive = function() {\n return /** @type{?proto.vertexvis.protobuf.scenetree.v1alpha1.KeepAlive} */ (\n jspb.Message.getWrapperField(this, proto.vertexvis.protobuf.scenetree.v1alpha1.KeepAlive, 3));\n};\n\n\n/** @param {?proto.vertexvis.protobuf.scenetree.v1alpha1.KeepAlive|undefined} value */\nproto.vertexvis.protobuf.scenetree.v1alpha1.TreeChangeType.prototype.setKeepAlive = function(value) {\n jspb.Message.setOneofWrapperField(this, 3, proto.vertexvis.protobuf.scenetree.v1alpha1.TreeChangeType.oneofGroups_[0], value);\n};\n\n\nproto.vertexvis.protobuf.scenetree.v1alpha1.TreeChangeType.prototype.clearKeepAlive = function() {\n this.setKeepAlive(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {!boolean}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.TreeChangeType.prototype.hasKeepAlive = function() {\n return jspb.Message.getField(this, 3) != null;\n};\n\n\n/**\n * optional FilterChange filter_change = 4;\n * @return {?proto.vertexvis.protobuf.scenetree.v1alpha1.FilterChange}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.TreeChangeType.prototype.getFilterChange = function() {\n return /** @type{?proto.vertexvis.protobuf.scenetree.v1alpha1.FilterChange} */ (\n jspb.Message.getWrapperField(this, proto.vertexvis.protobuf.scenetree.v1alpha1.FilterChange, 4));\n};\n\n\n/** @param {?proto.vertexvis.protobuf.scenetree.v1alpha1.FilterChange|undefined} value */\nproto.vertexvis.protobuf.scenetree.v1alpha1.TreeChangeType.prototype.setFilterChange = function(value) {\n jspb.Message.setOneofWrapperField(this, 4, proto.vertexvis.protobuf.scenetree.v1alpha1.TreeChangeType.oneofGroups_[0], value);\n};\n\n\nproto.vertexvis.protobuf.scenetree.v1alpha1.TreeChangeType.prototype.clearFilterChange = function() {\n this.setFilterChange(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {!boolean}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.TreeChangeType.prototype.hasFilterChange = function() {\n return jspb.Message.getField(this, 4) != null;\n};\n\n\n\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.ColumnKey = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.vertexvis.protobuf.scenetree.v1alpha1.ColumnKey, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n proto.vertexvis.protobuf.scenetree.v1alpha1.ColumnKey.displayName = 'proto.vertexvis.protobuf.scenetree.v1alpha1.ColumnKey';\n}\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto suitable for use in Soy templates.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n * com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS.\n * @param {boolean=} opt_includeInstance Whether to include the JSPB instance\n * for transitional soy proto support: http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.ColumnKey.prototype.toObject = function(opt_includeInstance) {\n return proto.vertexvis.protobuf.scenetree.v1alpha1.ColumnKey.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Whether to include the JSPB\n * instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.vertexvis.protobuf.scenetree.v1alpha1.ColumnKey} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.ColumnKey.toObject = function(includeInstance, msg) {\n var f, obj = {\n value: jspb.Message.getFieldWithDefault(msg, 1, \"\")\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.vertexvis.protobuf.scenetree.v1alpha1.ColumnKey}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.ColumnKey.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.vertexvis.protobuf.scenetree.v1alpha1.ColumnKey;\n return proto.vertexvis.protobuf.scenetree.v1alpha1.ColumnKey.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.vertexvis.protobuf.scenetree.v1alpha1.ColumnKey} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.vertexvis.protobuf.scenetree.v1alpha1.ColumnKey}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.ColumnKey.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {string} */ (reader.readString());\n msg.setValue(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.ColumnKey.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.vertexvis.protobuf.scenetree.v1alpha1.ColumnKey.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.vertexvis.protobuf.scenetree.v1alpha1.ColumnKey} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.ColumnKey.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getValue();\n if (f.length > 0) {\n writer.writeString(\n 1,\n f\n );\n }\n};\n\n\n/**\n * optional string value = 1;\n * @return {string}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.ColumnKey.prototype.getValue = function() {\n return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, \"\"));\n};\n\n\n/** @param {string} value */\nproto.vertexvis.protobuf.scenetree.v1alpha1.ColumnKey.prototype.setValue = function(value) {\n jspb.Message.setProto3StringField(this, 1, value);\n};\n\n\ngoog.object.extend(exports, proto.vertexvis.protobuf.scenetree.v1alpha1);\n","/**\n * @fileoverview\n * @enhanceable\n * @suppress {messageConventions} JS Compiler reports an error if a variable or\n * field starts with 'MSG_' and isn't a translatable message.\n * @public\n */\n// GENERATED CODE -- DO NOT EDIT!\n\nvar jspb = require('google-protobuf');\nvar goog = jspb;\nvar global = Function('return this')();\n\nvar core_protos_paging_pb = require('../../core/protos/paging_pb.js');\nvar core_protos_uuid_pb = require('../../core/protos/uuid_pb.js');\nvar google_protobuf_wrappers_pb = require('google-protobuf/google/protobuf/wrappers_pb.js');\nvar scenetree_protos_domain_pb = require('../../scenetree/protos/domain_pb.js');\ngoog.exportSymbol('proto.vertexvis.protobuf.scenetree.v1alpha1.CollapseAllRequest', null, global);\ngoog.exportSymbol('proto.vertexvis.protobuf.scenetree.v1alpha1.CollapseAllResponse', null, global);\ngoog.exportSymbol('proto.vertexvis.protobuf.scenetree.v1alpha1.CollapseNodeRequest', null, global);\ngoog.exportSymbol('proto.vertexvis.protobuf.scenetree.v1alpha1.CollapseNodeResponse', null, global);\ngoog.exportSymbol('proto.vertexvis.protobuf.scenetree.v1alpha1.ExpandAllRequest', null, global);\ngoog.exportSymbol('proto.vertexvis.protobuf.scenetree.v1alpha1.ExpandAllResponse', null, global);\ngoog.exportSymbol('proto.vertexvis.protobuf.scenetree.v1alpha1.ExpandNodeRequest', null, global);\ngoog.exportSymbol('proto.vertexvis.protobuf.scenetree.v1alpha1.ExpandNodeResponse', null, global);\ngoog.exportSymbol('proto.vertexvis.protobuf.scenetree.v1alpha1.FilterRequest', null, global);\ngoog.exportSymbol('proto.vertexvis.protobuf.scenetree.v1alpha1.FilterResponse', null, global);\ngoog.exportSymbol('proto.vertexvis.protobuf.scenetree.v1alpha1.GetAvailableColumnsRequest', null, global);\ngoog.exportSymbol('proto.vertexvis.protobuf.scenetree.v1alpha1.GetAvailableColumnsResponse', null, global);\ngoog.exportSymbol('proto.vertexvis.protobuf.scenetree.v1alpha1.GetNodeAncestorsRequest', null, global);\ngoog.exportSymbol('proto.vertexvis.protobuf.scenetree.v1alpha1.GetNodeAncestorsResponse', null, global);\ngoog.exportSymbol('proto.vertexvis.protobuf.scenetree.v1alpha1.GetTreeRequest', null, global);\ngoog.exportSymbol('proto.vertexvis.protobuf.scenetree.v1alpha1.GetTreeResponse', null, global);\ngoog.exportSymbol('proto.vertexvis.protobuf.scenetree.v1alpha1.Handshake', null, global);\ngoog.exportSymbol('proto.vertexvis.protobuf.scenetree.v1alpha1.LocateItemRequest', null, global);\ngoog.exportSymbol('proto.vertexvis.protobuf.scenetree.v1alpha1.LocateItemResponse', null, global);\ngoog.exportSymbol('proto.vertexvis.protobuf.scenetree.v1alpha1.SubscribeRequest', null, global);\ngoog.exportSymbol('proto.vertexvis.protobuf.scenetree.v1alpha1.SubscribeResponse', null, global);\n\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.GetTreeRequest = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, proto.vertexvis.protobuf.scenetree.v1alpha1.GetTreeRequest.repeatedFields_, null);\n};\ngoog.inherits(proto.vertexvis.protobuf.scenetree.v1alpha1.GetTreeRequest, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n proto.vertexvis.protobuf.scenetree.v1alpha1.GetTreeRequest.displayName = 'proto.vertexvis.protobuf.scenetree.v1alpha1.GetTreeRequest';\n}\n/**\n * List of repeated fields within this message type.\n * @private {!Array<number>}\n * @const\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.GetTreeRequest.repeatedFields_ = [3];\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto suitable for use in Soy templates.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n * com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS.\n * @param {boolean=} opt_includeInstance Whether to include the JSPB instance\n * for transitional soy proto support: http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.GetTreeRequest.prototype.toObject = function(opt_includeInstance) {\n return proto.vertexvis.protobuf.scenetree.v1alpha1.GetTreeRequest.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Whether to include the JSPB\n * instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.vertexvis.protobuf.scenetree.v1alpha1.GetTreeRequest} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.GetTreeRequest.toObject = function(includeInstance, msg) {\n var f, obj = {\n viewId: (f = msg.getViewId()) && core_protos_uuid_pb.Uuid.toObject(includeInstance, f),\n pager: (f = msg.getPager()) && core_protos_paging_pb.OffsetPager.toObject(includeInstance, f),\n additionalColumnKeysList: jspb.Message.getRepeatedField(msg, 3)\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.vertexvis.protobuf.scenetree.v1alpha1.GetTreeRequest}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.GetTreeRequest.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.vertexvis.protobuf.scenetree.v1alpha1.GetTreeRequest;\n return proto.vertexvis.protobuf.scenetree.v1alpha1.GetTreeRequest.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.vertexvis.protobuf.scenetree.v1alpha1.GetTreeRequest} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.vertexvis.protobuf.scenetree.v1alpha1.GetTreeRequest}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.GetTreeRequest.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = new core_protos_uuid_pb.Uuid;\n reader.readMessage(value,core_protos_uuid_pb.Uuid.deserializeBinaryFromReader);\n msg.setViewId(value);\n break;\n case 2:\n var value = new core_protos_paging_pb.OffsetPager;\n reader.readMessage(value,core_protos_paging_pb.OffsetPager.deserializeBinaryFromReader);\n msg.setPager(value);\n break;\n case 3:\n var value = /** @type {string} */ (reader.readString());\n msg.addAdditionalColumnKeys(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.GetTreeRequest.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.vertexvis.protobuf.scenetree.v1alpha1.GetTreeRequest.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.vertexvis.protobuf.scenetree.v1alpha1.GetTreeRequest} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.GetTreeRequest.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getViewId();\n if (f != null) {\n writer.writeMessage(\n 1,\n f,\n core_protos_uuid_pb.Uuid.serializeBinaryToWriter\n );\n }\n f = message.getPager();\n if (f != null) {\n writer.writeMessage(\n 2,\n f,\n core_protos_paging_pb.OffsetPager.serializeBinaryToWriter\n );\n }\n f = message.getAdditionalColumnKeysList();\n if (f.length > 0) {\n writer.writeRepeatedString(\n 3,\n f\n );\n }\n};\n\n\n/**\n * optional vertexvis.protobuf.core.Uuid view_id = 1;\n * @return {?proto.vertexvis.protobuf.core.Uuid}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.GetTreeRequest.prototype.getViewId = function() {\n return /** @type{?proto.vertexvis.protobuf.core.Uuid} */ (\n jspb.Message.getWrapperField(this, core_protos_uuid_pb.Uuid, 1));\n};\n\n\n/** @param {?proto.vertexvis.protobuf.core.Uuid|undefined} value */\nproto.vertexvis.protobuf.scenetree.v1alpha1.GetTreeRequest.prototype.setViewId = function(value) {\n jspb.Message.setWrapperField(this, 1, value);\n};\n\n\nproto.vertexvis.protobuf.scenetree.v1alpha1.GetTreeRequest.prototype.clearViewId = function() {\n this.setViewId(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {!boolean}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.GetTreeRequest.prototype.hasViewId = function() {\n return jspb.Message.getField(this, 1) != null;\n};\n\n\n/**\n * optional vertexvis.protobuf.core.OffsetPager pager = 2;\n * @return {?proto.vertexvis.protobuf.core.OffsetPager}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.GetTreeRequest.prototype.getPager = function() {\n return /** @type{?proto.vertexvis.protobuf.core.OffsetPager} */ (\n jspb.Message.getWrapperField(this, core_protos_paging_pb.OffsetPager, 2));\n};\n\n\n/** @param {?proto.vertexvis.protobuf.core.OffsetPager|undefined} value */\nproto.vertexvis.protobuf.scenetree.v1alpha1.GetTreeRequest.prototype.setPager = function(value) {\n jspb.Message.setWrapperField(this, 2, value);\n};\n\n\nproto.vertexvis.protobuf.scenetree.v1alpha1.GetTreeRequest.prototype.clearPager = function() {\n this.setPager(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {!boolean}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.GetTreeRequest.prototype.hasPager = function() {\n return jspb.Message.getField(this, 2) != null;\n};\n\n\n/**\n * repeated string additional_column_keys = 3;\n * @return {!Array<string>}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.GetTreeRequest.prototype.getAdditionalColumnKeysList = function() {\n return /** @type {!Array<string>} */ (jspb.Message.getRepeatedField(this, 3));\n};\n\n\n/** @param {!Array<string>} value */\nproto.vertexvis.protobuf.scenetree.v1alpha1.GetTreeRequest.prototype.setAdditionalColumnKeysList = function(value) {\n jspb.Message.setField(this, 3, value || []);\n};\n\n\n/**\n * @param {!string} value\n * @param {number=} opt_index\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.GetTreeRequest.prototype.addAdditionalColumnKeys = function(value, opt_index) {\n jspb.Message.addToRepeatedField(this, 3, value, opt_index);\n};\n\n\nproto.vertexvis.protobuf.scenetree.v1alpha1.GetTreeRequest.prototype.clearAdditionalColumnKeysList = function() {\n this.setAdditionalColumnKeysList([]);\n};\n\n\n\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.GetTreeResponse = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, proto.vertexvis.protobuf.scenetree.v1alpha1.GetTreeResponse.repeatedFields_, null);\n};\ngoog.inherits(proto.vertexvis.protobuf.scenetree.v1alpha1.GetTreeResponse, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n proto.vertexvis.protobuf.scenetree.v1alpha1.GetTreeResponse.displayName = 'proto.vertexvis.protobuf.scenetree.v1alpha1.GetTreeResponse';\n}\n/**\n * List of repeated fields within this message type.\n * @private {!Array<number>}\n * @const\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.GetTreeResponse.repeatedFields_ = [1];\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto suitable for use in Soy templates.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n * com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS.\n * @param {boolean=} opt_includeInstance Whether to include the JSPB instance\n * for transitional soy proto support: http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.GetTreeResponse.prototype.toObject = function(opt_includeInstance) {\n return proto.vertexvis.protobuf.scenetree.v1alpha1.GetTreeResponse.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Whether to include the JSPB\n * instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.vertexvis.protobuf.scenetree.v1alpha1.GetTreeResponse} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.GetTreeResponse.toObject = function(includeInstance, msg) {\n var f, obj = {\n itemsList: jspb.Message.toObjectList(msg.getItemsList(),\n scenetree_protos_domain_pb.Node.toObject, includeInstance),\n totalVisible: jspb.Message.getFieldWithDefault(msg, 2, 0),\n cursor: (f = msg.getCursor()) && core_protos_paging_pb.OffsetCursor.toObject(includeInstance, f)\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.vertexvis.protobuf.scenetree.v1alpha1.GetTreeResponse}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.GetTreeResponse.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.vertexvis.protobuf.scenetree.v1alpha1.GetTreeResponse;\n return proto.vertexvis.protobuf.scenetree.v1alpha1.GetTreeResponse.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.vertexvis.protobuf.scenetree.v1alpha1.GetTreeResponse} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.vertexvis.protobuf.scenetree.v1alpha1.GetTreeResponse}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.GetTreeResponse.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = new scenetree_protos_domain_pb.Node;\n reader.readMessage(value,scenetree_protos_domain_pb.Node.deserializeBinaryFromReader);\n msg.addItems(value);\n break;\n case 2:\n var value = /** @type {number} */ (reader.readUint32());\n msg.setTotalVisible(value);\n break;\n case 3:\n var value = new core_protos_paging_pb.OffsetCursor;\n reader.readMessage(value,core_protos_paging_pb.OffsetCursor.deserializeBinaryFromReader);\n msg.setCursor(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.GetTreeResponse.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.vertexvis.protobuf.scenetree.v1alpha1.GetTreeResponse.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.vertexvis.protobuf.scenetree.v1alpha1.GetTreeResponse} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.GetTreeResponse.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getItemsList();\n if (f.length > 0) {\n writer.writeRepeatedMessage(\n 1,\n f,\n scenetree_protos_domain_pb.Node.serializeBinaryToWriter\n );\n }\n f = message.getTotalVisible();\n if (f !== 0) {\n writer.writeUint32(\n 2,\n f\n );\n }\n f = message.getCursor();\n if (f != null) {\n writer.writeMessage(\n 3,\n f,\n core_protos_paging_pb.OffsetCursor.serializeBinaryToWriter\n );\n }\n};\n\n\n/**\n * repeated Node items = 1;\n * @return {!Array<!proto.vertexvis.protobuf.scenetree.v1alpha1.Node>}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.GetTreeResponse.prototype.getItemsList = function() {\n return /** @type{!Array<!proto.vertexvis.protobuf.scenetree.v1alpha1.Node>} */ (\n jspb.Message.getRepeatedWrapperField(this, scenetree_protos_domain_pb.Node, 1));\n};\n\n\n/** @param {!Array<!proto.vertexvis.protobuf.scenetree.v1alpha1.Node>} value */\nproto.vertexvis.protobuf.scenetree.v1alpha1.GetTreeResponse.prototype.setItemsList = function(value) {\n jspb.Message.setRepeatedWrapperField(this, 1, value);\n};\n\n\n/**\n * @param {!proto.vertexvis.protobuf.scenetree.v1alpha1.Node=} opt_value\n * @param {number=} opt_index\n * @return {!proto.vertexvis.protobuf.scenetree.v1alpha1.Node}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.GetTreeResponse.prototype.addItems = function(opt_value, opt_index) {\n return jspb.Message.addToRepeatedWrapperField(this, 1, opt_value, proto.vertexvis.protobuf.scenetree.v1alpha1.Node, opt_index);\n};\n\n\nproto.vertexvis.protobuf.scenetree.v1alpha1.GetTreeResponse.prototype.clearItemsList = function() {\n this.setItemsList([]);\n};\n\n\n/**\n * optional uint32 total_visible = 2;\n * @return {number}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.GetTreeResponse.prototype.getTotalVisible = function() {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 2, 0));\n};\n\n\n/** @param {number} value */\nproto.vertexvis.protobuf.scenetree.v1alpha1.GetTreeResponse.prototype.setTotalVisible = function(value) {\n jspb.Message.setProto3IntField(this, 2, value);\n};\n\n\n/**\n * optional vertexvis.protobuf.core.OffsetCursor cursor = 3;\n * @return {?proto.vertexvis.protobuf.core.OffsetCursor}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.GetTreeResponse.prototype.getCursor = function() {\n return /** @type{?proto.vertexvis.protobuf.core.OffsetCursor} */ (\n jspb.Message.getWrapperField(this, core_protos_paging_pb.OffsetCursor, 3));\n};\n\n\n/** @param {?proto.vertexvis.protobuf.core.OffsetCursor|undefined} value */\nproto.vertexvis.protobuf.scenetree.v1alpha1.GetTreeResponse.prototype.setCursor = function(value) {\n jspb.Message.setWrapperField(this, 3, value);\n};\n\n\nproto.vertexvis.protobuf.scenetree.v1alpha1.GetTreeResponse.prototype.clearCursor = function() {\n this.setCursor(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {!boolean}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.GetTreeResponse.prototype.hasCursor = function() {\n return jspb.Message.getField(this, 3) != null;\n};\n\n\n\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.ExpandNodeRequest = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.vertexvis.protobuf.scenetree.v1alpha1.ExpandNodeRequest, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n proto.vertexvis.protobuf.scenetree.v1alpha1.ExpandNodeRequest.displayName = 'proto.vertexvis.protobuf.scenetree.v1alpha1.ExpandNodeRequest';\n}\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto suitable for use in Soy templates.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n * com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS.\n * @param {boolean=} opt_includeInstance Whether to include the JSPB instance\n * for transitional soy proto support: http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.ExpandNodeRequest.prototype.toObject = function(opt_includeInstance) {\n return proto.vertexvis.protobuf.scenetree.v1alpha1.ExpandNodeRequest.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Whether to include the JSPB\n * instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.vertexvis.protobuf.scenetree.v1alpha1.ExpandNodeRequest} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.ExpandNodeRequest.toObject = function(includeInstance, msg) {\n var f, obj = {\n viewId: (f = msg.getViewId()) && core_protos_uuid_pb.Uuid.toObject(includeInstance, f),\n nodeId: (f = msg.getNodeId()) && core_protos_uuid_pb.Uuid.toObject(includeInstance, f)\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.vertexvis.protobuf.scenetree.v1alpha1.ExpandNodeRequest}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.ExpandNodeRequest.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.vertexvis.protobuf.scenetree.v1alpha1.ExpandNodeRequest;\n return proto.vertexvis.protobuf.scenetree.v1alpha1.ExpandNodeRequest.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.vertexvis.protobuf.scenetree.v1alpha1.ExpandNodeRequest} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.vertexvis.protobuf.scenetree.v1alpha1.ExpandNodeRequest}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.ExpandNodeRequest.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = new core_protos_uuid_pb.Uuid;\n reader.readMessage(value,core_protos_uuid_pb.Uuid.deserializeBinaryFromReader);\n msg.setViewId(value);\n break;\n case 2:\n var value = new core_protos_uuid_pb.Uuid;\n reader.readMessage(value,core_protos_uuid_pb.Uuid.deserializeBinaryFromReader);\n msg.setNodeId(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.ExpandNodeRequest.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.vertexvis.protobuf.scenetree.v1alpha1.ExpandNodeRequest.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.vertexvis.protobuf.scenetree.v1alpha1.ExpandNodeRequest} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.ExpandNodeRequest.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getViewId();\n if (f != null) {\n writer.writeMessage(\n 1,\n f,\n core_protos_uuid_pb.Uuid.serializeBinaryToWriter\n );\n }\n f = message.getNodeId();\n if (f != null) {\n writer.writeMessage(\n 2,\n f,\n core_protos_uuid_pb.Uuid.serializeBinaryToWriter\n );\n }\n};\n\n\n/**\n * optional vertexvis.protobuf.core.Uuid view_id = 1;\n * @return {?proto.vertexvis.protobuf.core.Uuid}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.ExpandNodeRequest.prototype.getViewId = function() {\n return /** @type{?proto.vertexvis.protobuf.core.Uuid} */ (\n jspb.Message.getWrapperField(this, core_protos_uuid_pb.Uuid, 1));\n};\n\n\n/** @param {?proto.vertexvis.protobuf.core.Uuid|undefined} value */\nproto.vertexvis.protobuf.scenetree.v1alpha1.ExpandNodeRequest.prototype.setViewId = function(value) {\n jspb.Message.setWrapperField(this, 1, value);\n};\n\n\nproto.vertexvis.protobuf.scenetree.v1alpha1.ExpandNodeRequest.prototype.clearViewId = function() {\n this.setViewId(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {!boolean}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.ExpandNodeRequest.prototype.hasViewId = function() {\n return jspb.Message.getField(this, 1) != null;\n};\n\n\n/**\n * optional vertexvis.protobuf.core.Uuid node_id = 2;\n * @return {?proto.vertexvis.protobuf.core.Uuid}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.ExpandNodeRequest.prototype.getNodeId = function() {\n return /** @type{?proto.vertexvis.protobuf.core.Uuid} */ (\n jspb.Message.getWrapperField(this, core_protos_uuid_pb.Uuid, 2));\n};\n\n\n/** @param {?proto.vertexvis.protobuf.core.Uuid|undefined} value */\nproto.vertexvis.protobuf.scenetree.v1alpha1.ExpandNodeRequest.prototype.setNodeId = function(value) {\n jspb.Message.setWrapperField(this, 2, value);\n};\n\n\nproto.vertexvis.protobuf.scenetree.v1alpha1.ExpandNodeRequest.prototype.clearNodeId = function() {\n this.setNodeId(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {!boolean}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.ExpandNodeRequest.prototype.hasNodeId = function() {\n return jspb.Message.getField(this, 2) != null;\n};\n\n\n\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.ExpandNodeResponse = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.vertexvis.protobuf.scenetree.v1alpha1.ExpandNodeResponse, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n proto.vertexvis.protobuf.scenetree.v1alpha1.ExpandNodeResponse.displayName = 'proto.vertexvis.protobuf.scenetree.v1alpha1.ExpandNodeResponse';\n}\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto suitable for use in Soy templates.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n * com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS.\n * @param {boolean=} opt_includeInstance Whether to include the JSPB instance\n * for transitional soy proto support: http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.ExpandNodeResponse.prototype.toObject = function(opt_includeInstance) {\n return proto.vertexvis.protobuf.scenetree.v1alpha1.ExpandNodeResponse.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Whether to include the JSPB\n * instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.vertexvis.protobuf.scenetree.v1alpha1.ExpandNodeResponse} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.ExpandNodeResponse.toObject = function(includeInstance, msg) {\n var f, obj = {\n\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.vertexvis.protobuf.scenetree.v1alpha1.ExpandNodeResponse}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.ExpandNodeResponse.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.vertexvis.protobuf.scenetree.v1alpha1.ExpandNodeResponse;\n return proto.vertexvis.protobuf.scenetree.v1alpha1.ExpandNodeResponse.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.vertexvis.protobuf.scenetree.v1alpha1.ExpandNodeResponse} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.vertexvis.protobuf.scenetree.v1alpha1.ExpandNodeResponse}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.ExpandNodeResponse.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.ExpandNodeResponse.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.vertexvis.protobuf.scenetree.v1alpha1.ExpandNodeResponse.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.vertexvis.protobuf.scenetree.v1alpha1.ExpandNodeResponse} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.ExpandNodeResponse.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n};\n\n\n\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.CollapseNodeRequest = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.vertexvis.protobuf.scenetree.v1alpha1.CollapseNodeRequest, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n proto.vertexvis.protobuf.scenetree.v1alpha1.CollapseNodeRequest.displayName = 'proto.vertexvis.protobuf.scenetree.v1alpha1.CollapseNodeRequest';\n}\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto suitable for use in Soy templates.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n * com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS.\n * @param {boolean=} opt_includeInstance Whether to include the JSPB instance\n * for transitional soy proto support: http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.CollapseNodeRequest.prototype.toObject = function(opt_includeInstance) {\n return proto.vertexvis.protobuf.scenetree.v1alpha1.CollapseNodeRequest.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Whether to include the JSPB\n * instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.vertexvis.protobuf.scenetree.v1alpha1.CollapseNodeRequest} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.CollapseNodeRequest.toObject = function(includeInstance, msg) {\n var f, obj = {\n viewId: (f = msg.getViewId()) && core_protos_uuid_pb.Uuid.toObject(includeInstance, f),\n nodeId: (f = msg.getNodeId()) && core_protos_uuid_pb.Uuid.toObject(includeInstance, f)\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.vertexvis.protobuf.scenetree.v1alpha1.CollapseNodeRequest}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.CollapseNodeRequest.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.vertexvis.protobuf.scenetree.v1alpha1.CollapseNodeRequest;\n return proto.vertexvis.protobuf.scenetree.v1alpha1.CollapseNodeRequest.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.vertexvis.protobuf.scenetree.v1alpha1.CollapseNodeRequest} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.vertexvis.protobuf.scenetree.v1alpha1.CollapseNodeRequest}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.CollapseNodeRequest.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = new core_protos_uuid_pb.Uuid;\n reader.readMessage(value,core_protos_uuid_pb.Uuid.deserializeBinaryFromReader);\n msg.setViewId(value);\n break;\n case 2:\n var value = new core_protos_uuid_pb.Uuid;\n reader.readMessage(value,core_protos_uuid_pb.Uuid.deserializeBinaryFromReader);\n msg.setNodeId(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.CollapseNodeRequest.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.vertexvis.protobuf.scenetree.v1alpha1.CollapseNodeRequest.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.vertexvis.protobuf.scenetree.v1alpha1.CollapseNodeRequest} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.CollapseNodeRequest.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getViewId();\n if (f != null) {\n writer.writeMessage(\n 1,\n f,\n core_protos_uuid_pb.Uuid.serializeBinaryToWriter\n );\n }\n f = message.getNodeId();\n if (f != null) {\n writer.writeMessage(\n 2,\n f,\n core_protos_uuid_pb.Uuid.serializeBinaryToWriter\n );\n }\n};\n\n\n/**\n * optional vertexvis.protobuf.core.Uuid view_id = 1;\n * @return {?proto.vertexvis.protobuf.core.Uuid}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.CollapseNodeRequest.prototype.getViewId = function() {\n return /** @type{?proto.vertexvis.protobuf.core.Uuid} */ (\n jspb.Message.getWrapperField(this, core_protos_uuid_pb.Uuid, 1));\n};\n\n\n/** @param {?proto.vertexvis.protobuf.core.Uuid|undefined} value */\nproto.vertexvis.protobuf.scenetree.v1alpha1.CollapseNodeRequest.prototype.setViewId = function(value) {\n jspb.Message.setWrapperField(this, 1, value);\n};\n\n\nproto.vertexvis.protobuf.scenetree.v1alpha1.CollapseNodeRequest.prototype.clearViewId = function() {\n this.setViewId(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {!boolean}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.CollapseNodeRequest.prototype.hasViewId = function() {\n return jspb.Message.getField(this, 1) != null;\n};\n\n\n/**\n * optional vertexvis.protobuf.core.Uuid node_id = 2;\n * @return {?proto.vertexvis.protobuf.core.Uuid}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.CollapseNodeRequest.prototype.getNodeId = function() {\n return /** @type{?proto.vertexvis.protobuf.core.Uuid} */ (\n jspb.Message.getWrapperField(this, core_protos_uuid_pb.Uuid, 2));\n};\n\n\n/** @param {?proto.vertexvis.protobuf.core.Uuid|undefined} value */\nproto.vertexvis.protobuf.scenetree.v1alpha1.CollapseNodeRequest.prototype.setNodeId = function(value) {\n jspb.Message.setWrapperField(this, 2, value);\n};\n\n\nproto.vertexvis.protobuf.scenetree.v1alpha1.CollapseNodeRequest.prototype.clearNodeId = function() {\n this.setNodeId(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {!boolean}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.CollapseNodeRequest.prototype.hasNodeId = function() {\n return jspb.Message.getField(this, 2) != null;\n};\n\n\n\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.CollapseNodeResponse = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.vertexvis.protobuf.scenetree.v1alpha1.CollapseNodeResponse, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n proto.vertexvis.protobuf.scenetree.v1alpha1.CollapseNodeResponse.displayName = 'proto.vertexvis.protobuf.scenetree.v1alpha1.CollapseNodeResponse';\n}\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto suitable for use in Soy templates.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n * com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS.\n * @param {boolean=} opt_includeInstance Whether to include the JSPB instance\n * for transitional soy proto support: http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.CollapseNodeResponse.prototype.toObject = function(opt_includeInstance) {\n return proto.vertexvis.protobuf.scenetree.v1alpha1.CollapseNodeResponse.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Whether to include the JSPB\n * instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.vertexvis.protobuf.scenetree.v1alpha1.CollapseNodeResponse} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.CollapseNodeResponse.toObject = function(includeInstance, msg) {\n var f, obj = {\n\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.vertexvis.protobuf.scenetree.v1alpha1.CollapseNodeResponse}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.CollapseNodeResponse.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.vertexvis.protobuf.scenetree.v1alpha1.CollapseNodeResponse;\n return proto.vertexvis.protobuf.scenetree.v1alpha1.CollapseNodeResponse.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.vertexvis.protobuf.scenetree.v1alpha1.CollapseNodeResponse} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.vertexvis.protobuf.scenetree.v1alpha1.CollapseNodeResponse}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.CollapseNodeResponse.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.CollapseNodeResponse.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.vertexvis.protobuf.scenetree.v1alpha1.CollapseNodeResponse.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.vertexvis.protobuf.scenetree.v1alpha1.CollapseNodeResponse} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.CollapseNodeResponse.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n};\n\n\n\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.SubscribeRequest = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.vertexvis.protobuf.scenetree.v1alpha1.SubscribeRequest, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n proto.vertexvis.protobuf.scenetree.v1alpha1.SubscribeRequest.displayName = 'proto.vertexvis.protobuf.scenetree.v1alpha1.SubscribeRequest';\n}\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto suitable for use in Soy templates.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n * com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS.\n * @param {boolean=} opt_includeInstance Whether to include the JSPB instance\n * for transitional soy proto support: http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.SubscribeRequest.prototype.toObject = function(opt_includeInstance) {\n return proto.vertexvis.protobuf.scenetree.v1alpha1.SubscribeRequest.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Whether to include the JSPB\n * instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.vertexvis.protobuf.scenetree.v1alpha1.SubscribeRequest} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.SubscribeRequest.toObject = function(includeInstance, msg) {\n var f, obj = {\n viewId: (f = msg.getViewId()) && core_protos_uuid_pb.Uuid.toObject(includeInstance, f)\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.vertexvis.protobuf.scenetree.v1alpha1.SubscribeRequest}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.SubscribeRequest.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.vertexvis.protobuf.scenetree.v1alpha1.SubscribeRequest;\n return proto.vertexvis.protobuf.scenetree.v1alpha1.SubscribeRequest.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.vertexvis.protobuf.scenetree.v1alpha1.SubscribeRequest} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.vertexvis.protobuf.scenetree.v1alpha1.SubscribeRequest}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.SubscribeRequest.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = new core_protos_uuid_pb.Uuid;\n reader.readMessage(value,core_protos_uuid_pb.Uuid.deserializeBinaryFromReader);\n msg.setViewId(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.SubscribeRequest.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.vertexvis.protobuf.scenetree.v1alpha1.SubscribeRequest.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.vertexvis.protobuf.scenetree.v1alpha1.SubscribeRequest} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.SubscribeRequest.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getViewId();\n if (f != null) {\n writer.writeMessage(\n 1,\n f,\n core_protos_uuid_pb.Uuid.serializeBinaryToWriter\n );\n }\n};\n\n\n/**\n * optional vertexvis.protobuf.core.Uuid view_id = 1;\n * @return {?proto.vertexvis.protobuf.core.Uuid}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.SubscribeRequest.prototype.getViewId = function() {\n return /** @type{?proto.vertexvis.protobuf.core.Uuid} */ (\n jspb.Message.getWrapperField(this, core_protos_uuid_pb.Uuid, 1));\n};\n\n\n/** @param {?proto.vertexvis.protobuf.core.Uuid|undefined} value */\nproto.vertexvis.protobuf.scenetree.v1alpha1.SubscribeRequest.prototype.setViewId = function(value) {\n jspb.Message.setWrapperField(this, 1, value);\n};\n\n\nproto.vertexvis.protobuf.scenetree.v1alpha1.SubscribeRequest.prototype.clearViewId = function() {\n this.setViewId(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {!boolean}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.SubscribeRequest.prototype.hasViewId = function() {\n return jspb.Message.getField(this, 1) != null;\n};\n\n\n\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.SubscribeResponse = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.vertexvis.protobuf.scenetree.v1alpha1.SubscribeResponse, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n proto.vertexvis.protobuf.scenetree.v1alpha1.SubscribeResponse.displayName = 'proto.vertexvis.protobuf.scenetree.v1alpha1.SubscribeResponse';\n}\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto suitable for use in Soy templates.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n * com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS.\n * @param {boolean=} opt_includeInstance Whether to include the JSPB instance\n * for transitional soy proto support: http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.SubscribeResponse.prototype.toObject = function(opt_includeInstance) {\n return proto.vertexvis.protobuf.scenetree.v1alpha1.SubscribeResponse.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Whether to include the JSPB\n * instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.vertexvis.protobuf.scenetree.v1alpha1.SubscribeResponse} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.SubscribeResponse.toObject = function(includeInstance, msg) {\n var f, obj = {\n change: (f = msg.getChange()) && scenetree_protos_domain_pb.TreeChangeType.toObject(includeInstance, f),\n handshake: (f = msg.getHandshake()) && proto.vertexvis.protobuf.scenetree.v1alpha1.Handshake.toObject(includeInstance, f)\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.vertexvis.protobuf.scenetree.v1alpha1.SubscribeResponse}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.SubscribeResponse.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.vertexvis.protobuf.scenetree.v1alpha1.SubscribeResponse;\n return proto.vertexvis.protobuf.scenetree.v1alpha1.SubscribeResponse.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.vertexvis.protobuf.scenetree.v1alpha1.SubscribeResponse} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.vertexvis.protobuf.scenetree.v1alpha1.SubscribeResponse}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.SubscribeResponse.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = new scenetree_protos_domain_pb.TreeChangeType;\n reader.readMessage(value,scenetree_protos_domain_pb.TreeChangeType.deserializeBinaryFromReader);\n msg.setChange(value);\n break;\n case 2:\n var value = new proto.vertexvis.protobuf.scenetree.v1alpha1.Handshake;\n reader.readMessage(value,proto.vertexvis.protobuf.scenetree.v1alpha1.Handshake.deserializeBinaryFromReader);\n msg.setHandshake(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.SubscribeResponse.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.vertexvis.protobuf.scenetree.v1alpha1.SubscribeResponse.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.vertexvis.protobuf.scenetree.v1alpha1.SubscribeResponse} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.SubscribeResponse.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getChange();\n if (f != null) {\n writer.writeMessage(\n 1,\n f,\n scenetree_protos_domain_pb.TreeChangeType.serializeBinaryToWriter\n );\n }\n f = message.getHandshake();\n if (f != null) {\n writer.writeMessage(\n 2,\n f,\n proto.vertexvis.protobuf.scenetree.v1alpha1.Handshake.serializeBinaryToWriter\n );\n }\n};\n\n\n/**\n * optional TreeChangeType change = 1;\n * @return {?proto.vertexvis.protobuf.scenetree.v1alpha1.TreeChangeType}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.SubscribeResponse.prototype.getChange = function() {\n return /** @type{?proto.vertexvis.protobuf.scenetree.v1alpha1.TreeChangeType} */ (\n jspb.Message.getWrapperField(this, scenetree_protos_domain_pb.TreeChangeType, 1));\n};\n\n\n/** @param {?proto.vertexvis.protobuf.scenetree.v1alpha1.TreeChangeType|undefined} value */\nproto.vertexvis.protobuf.scenetree.v1alpha1.SubscribeResponse.prototype.setChange = function(value) {\n jspb.Message.setWrapperField(this, 1, value);\n};\n\n\nproto.vertexvis.protobuf.scenetree.v1alpha1.SubscribeResponse.prototype.clearChange = function() {\n this.setChange(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {!boolean}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.SubscribeResponse.prototype.hasChange = function() {\n return jspb.Message.getField(this, 1) != null;\n};\n\n\n/**\n * optional Handshake handshake = 2;\n * @return {?proto.vertexvis.protobuf.scenetree.v1alpha1.Handshake}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.SubscribeResponse.prototype.getHandshake = function() {\n return /** @type{?proto.vertexvis.protobuf.scenetree.v1alpha1.Handshake} */ (\n jspb.Message.getWrapperField(this, proto.vertexvis.protobuf.scenetree.v1alpha1.Handshake, 2));\n};\n\n\n/** @param {?proto.vertexvis.protobuf.scenetree.v1alpha1.Handshake|undefined} value */\nproto.vertexvis.protobuf.scenetree.v1alpha1.SubscribeResponse.prototype.setHandshake = function(value) {\n jspb.Message.setWrapperField(this, 2, value);\n};\n\n\nproto.vertexvis.protobuf.scenetree.v1alpha1.SubscribeResponse.prototype.clearHandshake = function() {\n this.setHandshake(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {!boolean}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.SubscribeResponse.prototype.hasHandshake = function() {\n return jspb.Message.getField(this, 2) != null;\n};\n\n\n\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.Handshake = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.vertexvis.protobuf.scenetree.v1alpha1.Handshake, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n proto.vertexvis.protobuf.scenetree.v1alpha1.Handshake.displayName = 'proto.vertexvis.protobuf.scenetree.v1alpha1.Handshake';\n}\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto suitable for use in Soy templates.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n * com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS.\n * @param {boolean=} opt_includeInstance Whether to include the JSPB instance\n * for transitional soy proto support: http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.Handshake.prototype.toObject = function(opt_includeInstance) {\n return proto.vertexvis.protobuf.scenetree.v1alpha1.Handshake.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Whether to include the JSPB\n * instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.vertexvis.protobuf.scenetree.v1alpha1.Handshake} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.Handshake.toObject = function(includeInstance, msg) {\n var f, obj = {\n\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.vertexvis.protobuf.scenetree.v1alpha1.Handshake}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.Handshake.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.vertexvis.protobuf.scenetree.v1alpha1.Handshake;\n return proto.vertexvis.protobuf.scenetree.v1alpha1.Handshake.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.vertexvis.protobuf.scenetree.v1alpha1.Handshake} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.vertexvis.protobuf.scenetree.v1alpha1.Handshake}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.Handshake.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.Handshake.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.vertexvis.protobuf.scenetree.v1alpha1.Handshake.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.vertexvis.protobuf.scenetree.v1alpha1.Handshake} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.Handshake.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n};\n\n\n\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.FilterRequest = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, proto.vertexvis.protobuf.scenetree.v1alpha1.FilterRequest.repeatedFields_, null);\n};\ngoog.inherits(proto.vertexvis.protobuf.scenetree.v1alpha1.FilterRequest, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n proto.vertexvis.protobuf.scenetree.v1alpha1.FilterRequest.displayName = 'proto.vertexvis.protobuf.scenetree.v1alpha1.FilterRequest';\n}\n/**\n * List of repeated fields within this message type.\n * @private {!Array<number>}\n * @const\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.FilterRequest.repeatedFields_ = [3];\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto suitable for use in Soy templates.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n * com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS.\n * @param {boolean=} opt_includeInstance Whether to include the JSPB instance\n * for transitional soy proto support: http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.FilterRequest.prototype.toObject = function(opt_includeInstance) {\n return proto.vertexvis.protobuf.scenetree.v1alpha1.FilterRequest.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Whether to include the JSPB\n * instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.vertexvis.protobuf.scenetree.v1alpha1.FilterRequest} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.FilterRequest.toObject = function(includeInstance, msg) {\n var f, obj = {\n filter: jspb.Message.getFieldWithDefault(msg, 1, \"\"),\n fullTree: jspb.Message.getFieldWithDefault(msg, 2, false),\n columnsKeysList: jspb.Message.getRepeatedField(msg, 3),\n exactMatch: jspb.Message.getFieldWithDefault(msg, 4, false),\n removeHiddenItems: jspb.Message.getFieldWithDefault(msg, 5, false)\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.vertexvis.protobuf.scenetree.v1alpha1.FilterRequest}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.FilterRequest.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.vertexvis.protobuf.scenetree.v1alpha1.FilterRequest;\n return proto.vertexvis.protobuf.scenetree.v1alpha1.FilterRequest.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.vertexvis.protobuf.scenetree.v1alpha1.FilterRequest} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.vertexvis.protobuf.scenetree.v1alpha1.FilterRequest}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.FilterRequest.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {string} */ (reader.readString());\n msg.setFilter(value);\n break;\n case 2:\n var value = /** @type {boolean} */ (reader.readBool());\n msg.setFullTree(value);\n break;\n case 3:\n var value = /** @type {string} */ (reader.readString());\n msg.addColumnsKeys(value);\n break;\n case 4:\n var value = /** @type {boolean} */ (reader.readBool());\n msg.setExactMatch(value);\n break;\n case 5:\n var value = /** @type {boolean} */ (reader.readBool());\n msg.setRemoveHiddenItems(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.FilterRequest.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.vertexvis.protobuf.scenetree.v1alpha1.FilterRequest.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.vertexvis.protobuf.scenetree.v1alpha1.FilterRequest} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.FilterRequest.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getFilter();\n if (f.length > 0) {\n writer.writeString(\n 1,\n f\n );\n }\n f = message.getFullTree();\n if (f) {\n writer.writeBool(\n 2,\n f\n );\n }\n f = message.getColumnsKeysList();\n if (f.length > 0) {\n writer.writeRepeatedString(\n 3,\n f\n );\n }\n f = message.getExactMatch();\n if (f) {\n writer.writeBool(\n 4,\n f\n );\n }\n f = message.getRemoveHiddenItems();\n if (f) {\n writer.writeBool(\n 5,\n f\n );\n }\n};\n\n\n/**\n * optional string filter = 1;\n * @return {string}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.FilterRequest.prototype.getFilter = function() {\n return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, \"\"));\n};\n\n\n/** @param {string} value */\nproto.vertexvis.protobuf.scenetree.v1alpha1.FilterRequest.prototype.setFilter = function(value) {\n jspb.Message.setProto3StringField(this, 1, value);\n};\n\n\n/**\n * optional bool full_tree = 2;\n * Note that Boolean fields may be set to 0/1 when serialized from a Java server.\n * You should avoid comparisons like {@code val === true/false} in those cases.\n * @return {boolean}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.FilterRequest.prototype.getFullTree = function() {\n return /** @type {boolean} */ (jspb.Message.getFieldWithDefault(this, 2, false));\n};\n\n\n/** @param {boolean} value */\nproto.vertexvis.protobuf.scenetree.v1alpha1.FilterRequest.prototype.setFullTree = function(value) {\n jspb.Message.setProto3BooleanField(this, 2, value);\n};\n\n\n/**\n * repeated string columns_keys = 3;\n * @return {!Array<string>}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.FilterRequest.prototype.getColumnsKeysList = function() {\n return /** @type {!Array<string>} */ (jspb.Message.getRepeatedField(this, 3));\n};\n\n\n/** @param {!Array<string>} value */\nproto.vertexvis.protobuf.scenetree.v1alpha1.FilterRequest.prototype.setColumnsKeysList = function(value) {\n jspb.Message.setField(this, 3, value || []);\n};\n\n\n/**\n * @param {!string} value\n * @param {number=} opt_index\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.FilterRequest.prototype.addColumnsKeys = function(value, opt_index) {\n jspb.Message.addToRepeatedField(this, 3, value, opt_index);\n};\n\n\nproto.vertexvis.protobuf.scenetree.v1alpha1.FilterRequest.prototype.clearColumnsKeysList = function() {\n this.setColumnsKeysList([]);\n};\n\n\n/**\n * optional bool exact_match = 4;\n * Note that Boolean fields may be set to 0/1 when serialized from a Java server.\n * You should avoid comparisons like {@code val === true/false} in those cases.\n * @return {boolean}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.FilterRequest.prototype.getExactMatch = function() {\n return /** @type {boolean} */ (jspb.Message.getFieldWithDefault(this, 4, false));\n};\n\n\n/** @param {boolean} value */\nproto.vertexvis.protobuf.scenetree.v1alpha1.FilterRequest.prototype.setExactMatch = function(value) {\n jspb.Message.setProto3BooleanField(this, 4, value);\n};\n\n\n/**\n * optional bool remove_hidden_items = 5;\n * Note that Boolean fields may be set to 0/1 when serialized from a Java server.\n * You should avoid comparisons like {@code val === true/false} in those cases.\n * @return {boolean}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.FilterRequest.prototype.getRemoveHiddenItems = function() {\n return /** @type {boolean} */ (jspb.Message.getFieldWithDefault(this, 5, false));\n};\n\n\n/** @param {boolean} value */\nproto.vertexvis.protobuf.scenetree.v1alpha1.FilterRequest.prototype.setRemoveHiddenItems = function(value) {\n jspb.Message.setProto3BooleanField(this, 5, value);\n};\n\n\n\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.FilterResponse = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.vertexvis.protobuf.scenetree.v1alpha1.FilterResponse, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n proto.vertexvis.protobuf.scenetree.v1alpha1.FilterResponse.displayName = 'proto.vertexvis.protobuf.scenetree.v1alpha1.FilterResponse';\n}\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto suitable for use in Soy templates.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n * com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS.\n * @param {boolean=} opt_includeInstance Whether to include the JSPB instance\n * for transitional soy proto support: http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.FilterResponse.prototype.toObject = function(opt_includeInstance) {\n return proto.vertexvis.protobuf.scenetree.v1alpha1.FilterResponse.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Whether to include the JSPB\n * instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.vertexvis.protobuf.scenetree.v1alpha1.FilterResponse} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.FilterResponse.toObject = function(includeInstance, msg) {\n var f, obj = {\n numberOfResults: jspb.Message.getFieldWithDefault(msg, 1, 0)\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.vertexvis.protobuf.scenetree.v1alpha1.FilterResponse}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.FilterResponse.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.vertexvis.protobuf.scenetree.v1alpha1.FilterResponse;\n return proto.vertexvis.protobuf.scenetree.v1alpha1.FilterResponse.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.vertexvis.protobuf.scenetree.v1alpha1.FilterResponse} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.vertexvis.protobuf.scenetree.v1alpha1.FilterResponse}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.FilterResponse.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {number} */ (reader.readUint32());\n msg.setNumberOfResults(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.FilterResponse.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.vertexvis.protobuf.scenetree.v1alpha1.FilterResponse.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.vertexvis.protobuf.scenetree.v1alpha1.FilterResponse} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.FilterResponse.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getNumberOfResults();\n if (f !== 0) {\n writer.writeUint32(\n 1,\n f\n );\n }\n};\n\n\n/**\n * optional uint32 number_of_results = 1;\n * @return {number}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.FilterResponse.prototype.getNumberOfResults = function() {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 1, 0));\n};\n\n\n/** @param {number} value */\nproto.vertexvis.protobuf.scenetree.v1alpha1.FilterResponse.prototype.setNumberOfResults = function(value) {\n jspb.Message.setProto3IntField(this, 1, value);\n};\n\n\n\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.LocateItemRequest = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.vertexvis.protobuf.scenetree.v1alpha1.LocateItemRequest, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n proto.vertexvis.protobuf.scenetree.v1alpha1.LocateItemRequest.displayName = 'proto.vertexvis.protobuf.scenetree.v1alpha1.LocateItemRequest';\n}\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto suitable for use in Soy templates.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n * com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS.\n * @param {boolean=} opt_includeInstance Whether to include the JSPB instance\n * for transitional soy proto support: http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.LocateItemRequest.prototype.toObject = function(opt_includeInstance) {\n return proto.vertexvis.protobuf.scenetree.v1alpha1.LocateItemRequest.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Whether to include the JSPB\n * instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.vertexvis.protobuf.scenetree.v1alpha1.LocateItemRequest} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.LocateItemRequest.toObject = function(includeInstance, msg) {\n var f, obj = {\n nodeId: (f = msg.getNodeId()) && core_protos_uuid_pb.Uuid.toObject(includeInstance, f)\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.vertexvis.protobuf.scenetree.v1alpha1.LocateItemRequest}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.LocateItemRequest.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.vertexvis.protobuf.scenetree.v1alpha1.LocateItemRequest;\n return proto.vertexvis.protobuf.scenetree.v1alpha1.LocateItemRequest.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.vertexvis.protobuf.scenetree.v1alpha1.LocateItemRequest} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.vertexvis.protobuf.scenetree.v1alpha1.LocateItemRequest}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.LocateItemRequest.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 2:\n var value = new core_protos_uuid_pb.Uuid;\n reader.readMessage(value,core_protos_uuid_pb.Uuid.deserializeBinaryFromReader);\n msg.setNodeId(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.LocateItemRequest.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.vertexvis.protobuf.scenetree.v1alpha1.LocateItemRequest.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.vertexvis.protobuf.scenetree.v1alpha1.LocateItemRequest} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.LocateItemRequest.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getNodeId();\n if (f != null) {\n writer.writeMessage(\n 2,\n f,\n core_protos_uuid_pb.Uuid.serializeBinaryToWriter\n );\n }\n};\n\n\n/**\n * optional vertexvis.protobuf.core.Uuid node_id = 2;\n * @return {?proto.vertexvis.protobuf.core.Uuid}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.LocateItemRequest.prototype.getNodeId = function() {\n return /** @type{?proto.vertexvis.protobuf.core.Uuid} */ (\n jspb.Message.getWrapperField(this, core_protos_uuid_pb.Uuid, 2));\n};\n\n\n/** @param {?proto.vertexvis.protobuf.core.Uuid|undefined} value */\nproto.vertexvis.protobuf.scenetree.v1alpha1.LocateItemRequest.prototype.setNodeId = function(value) {\n jspb.Message.setWrapperField(this, 2, value);\n};\n\n\nproto.vertexvis.protobuf.scenetree.v1alpha1.LocateItemRequest.prototype.clearNodeId = function() {\n this.setNodeId(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {!boolean}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.LocateItemRequest.prototype.hasNodeId = function() {\n return jspb.Message.getField(this, 2) != null;\n};\n\n\n\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.LocateItemResponse = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.vertexvis.protobuf.scenetree.v1alpha1.LocateItemResponse, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n proto.vertexvis.protobuf.scenetree.v1alpha1.LocateItemResponse.displayName = 'proto.vertexvis.protobuf.scenetree.v1alpha1.LocateItemResponse';\n}\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto suitable for use in Soy templates.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n * com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS.\n * @param {boolean=} opt_includeInstance Whether to include the JSPB instance\n * for transitional soy proto support: http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.LocateItemResponse.prototype.toObject = function(opt_includeInstance) {\n return proto.vertexvis.protobuf.scenetree.v1alpha1.LocateItemResponse.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Whether to include the JSPB\n * instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.vertexvis.protobuf.scenetree.v1alpha1.LocateItemResponse} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.LocateItemResponse.toObject = function(includeInstance, msg) {\n var f, obj = {\n locatedIndex: (f = msg.getLocatedIndex()) && google_protobuf_wrappers_pb.UInt64Value.toObject(includeInstance, f),\n requiresReload: jspb.Message.getFieldWithDefault(msg, 2, false)\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.vertexvis.protobuf.scenetree.v1alpha1.LocateItemResponse}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.LocateItemResponse.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.vertexvis.protobuf.scenetree.v1alpha1.LocateItemResponse;\n return proto.vertexvis.protobuf.scenetree.v1alpha1.LocateItemResponse.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.vertexvis.protobuf.scenetree.v1alpha1.LocateItemResponse} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.vertexvis.protobuf.scenetree.v1alpha1.LocateItemResponse}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.LocateItemResponse.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = new google_protobuf_wrappers_pb.UInt64Value;\n reader.readMessage(value,google_protobuf_wrappers_pb.UInt64Value.deserializeBinaryFromReader);\n msg.setLocatedIndex(value);\n break;\n case 2:\n var value = /** @type {boolean} */ (reader.readBool());\n msg.setRequiresReload(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.LocateItemResponse.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.vertexvis.protobuf.scenetree.v1alpha1.LocateItemResponse.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.vertexvis.protobuf.scenetree.v1alpha1.LocateItemResponse} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.LocateItemResponse.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getLocatedIndex();\n if (f != null) {\n writer.writeMessage(\n 1,\n f,\n google_protobuf_wrappers_pb.UInt64Value.serializeBinaryToWriter\n );\n }\n f = message.getRequiresReload();\n if (f) {\n writer.writeBool(\n 2,\n f\n );\n }\n};\n\n\n/**\n * optional google.protobuf.UInt64Value located_index = 1;\n * @return {?proto.google.protobuf.UInt64Value}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.LocateItemResponse.prototype.getLocatedIndex = function() {\n return /** @type{?proto.google.protobuf.UInt64Value} */ (\n jspb.Message.getWrapperField(this, google_protobuf_wrappers_pb.UInt64Value, 1));\n};\n\n\n/** @param {?proto.google.protobuf.UInt64Value|undefined} value */\nproto.vertexvis.protobuf.scenetree.v1alpha1.LocateItemResponse.prototype.setLocatedIndex = function(value) {\n jspb.Message.setWrapperField(this, 1, value);\n};\n\n\nproto.vertexvis.protobuf.scenetree.v1alpha1.LocateItemResponse.prototype.clearLocatedIndex = function() {\n this.setLocatedIndex(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {!boolean}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.LocateItemResponse.prototype.hasLocatedIndex = function() {\n return jspb.Message.getField(this, 1) != null;\n};\n\n\n/**\n * optional bool requires_reload = 2;\n * Note that Boolean fields may be set to 0/1 when serialized from a Java server.\n * You should avoid comparisons like {@code val === true/false} in those cases.\n * @return {boolean}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.LocateItemResponse.prototype.getRequiresReload = function() {\n return /** @type {boolean} */ (jspb.Message.getFieldWithDefault(this, 2, false));\n};\n\n\n/** @param {boolean} value */\nproto.vertexvis.protobuf.scenetree.v1alpha1.LocateItemResponse.prototype.setRequiresReload = function(value) {\n jspb.Message.setProto3BooleanField(this, 2, value);\n};\n\n\n\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.ExpandAllRequest = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.vertexvis.protobuf.scenetree.v1alpha1.ExpandAllRequest, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n proto.vertexvis.protobuf.scenetree.v1alpha1.ExpandAllRequest.displayName = 'proto.vertexvis.protobuf.scenetree.v1alpha1.ExpandAllRequest';\n}\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto suitable for use in Soy templates.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n * com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS.\n * @param {boolean=} opt_includeInstance Whether to include the JSPB instance\n * for transitional soy proto support: http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.ExpandAllRequest.prototype.toObject = function(opt_includeInstance) {\n return proto.vertexvis.protobuf.scenetree.v1alpha1.ExpandAllRequest.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Whether to include the JSPB\n * instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.vertexvis.protobuf.scenetree.v1alpha1.ExpandAllRequest} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.ExpandAllRequest.toObject = function(includeInstance, msg) {\n var f, obj = {\n\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.vertexvis.protobuf.scenetree.v1alpha1.ExpandAllRequest}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.ExpandAllRequest.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.vertexvis.protobuf.scenetree.v1alpha1.ExpandAllRequest;\n return proto.vertexvis.protobuf.scenetree.v1alpha1.ExpandAllRequest.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.vertexvis.protobuf.scenetree.v1alpha1.ExpandAllRequest} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.vertexvis.protobuf.scenetree.v1alpha1.ExpandAllRequest}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.ExpandAllRequest.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.ExpandAllRequest.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.vertexvis.protobuf.scenetree.v1alpha1.ExpandAllRequest.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.vertexvis.protobuf.scenetree.v1alpha1.ExpandAllRequest} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.ExpandAllRequest.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n};\n\n\n\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.ExpandAllResponse = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.vertexvis.protobuf.scenetree.v1alpha1.ExpandAllResponse, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n proto.vertexvis.protobuf.scenetree.v1alpha1.ExpandAllResponse.displayName = 'proto.vertexvis.protobuf.scenetree.v1alpha1.ExpandAllResponse';\n}\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto suitable for use in Soy templates.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n * com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS.\n * @param {boolean=} opt_includeInstance Whether to include the JSPB instance\n * for transitional soy proto support: http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.ExpandAllResponse.prototype.toObject = function(opt_includeInstance) {\n return proto.vertexvis.protobuf.scenetree.v1alpha1.ExpandAllResponse.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Whether to include the JSPB\n * instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.vertexvis.protobuf.scenetree.v1alpha1.ExpandAllResponse} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.ExpandAllResponse.toObject = function(includeInstance, msg) {\n var f, obj = {\n\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.vertexvis.protobuf.scenetree.v1alpha1.ExpandAllResponse}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.ExpandAllResponse.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.vertexvis.protobuf.scenetree.v1alpha1.ExpandAllResponse;\n return proto.vertexvis.protobuf.scenetree.v1alpha1.ExpandAllResponse.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.vertexvis.protobuf.scenetree.v1alpha1.ExpandAllResponse} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.vertexvis.protobuf.scenetree.v1alpha1.ExpandAllResponse}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.ExpandAllResponse.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.ExpandAllResponse.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.vertexvis.protobuf.scenetree.v1alpha1.ExpandAllResponse.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.vertexvis.protobuf.scenetree.v1alpha1.ExpandAllResponse} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.ExpandAllResponse.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n};\n\n\n\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.CollapseAllRequest = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.vertexvis.protobuf.scenetree.v1alpha1.CollapseAllRequest, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n proto.vertexvis.protobuf.scenetree.v1alpha1.CollapseAllRequest.displayName = 'proto.vertexvis.protobuf.scenetree.v1alpha1.CollapseAllRequest';\n}\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto suitable for use in Soy templates.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n * com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS.\n * @param {boolean=} opt_includeInstance Whether to include the JSPB instance\n * for transitional soy proto support: http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.CollapseAllRequest.prototype.toObject = function(opt_includeInstance) {\n return proto.vertexvis.protobuf.scenetree.v1alpha1.CollapseAllRequest.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Whether to include the JSPB\n * instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.vertexvis.protobuf.scenetree.v1alpha1.CollapseAllRequest} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.CollapseAllRequest.toObject = function(includeInstance, msg) {\n var f, obj = {\n\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.vertexvis.protobuf.scenetree.v1alpha1.CollapseAllRequest}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.CollapseAllRequest.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.vertexvis.protobuf.scenetree.v1alpha1.CollapseAllRequest;\n return proto.vertexvis.protobuf.scenetree.v1alpha1.CollapseAllRequest.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.vertexvis.protobuf.scenetree.v1alpha1.CollapseAllRequest} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.vertexvis.protobuf.scenetree.v1alpha1.CollapseAllRequest}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.CollapseAllRequest.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.CollapseAllRequest.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.vertexvis.protobuf.scenetree.v1alpha1.CollapseAllRequest.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.vertexvis.protobuf.scenetree.v1alpha1.CollapseAllRequest} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.CollapseAllRequest.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n};\n\n\n\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.CollapseAllResponse = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.vertexvis.protobuf.scenetree.v1alpha1.CollapseAllResponse, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n proto.vertexvis.protobuf.scenetree.v1alpha1.CollapseAllResponse.displayName = 'proto.vertexvis.protobuf.scenetree.v1alpha1.CollapseAllResponse';\n}\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto suitable for use in Soy templates.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n * com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS.\n * @param {boolean=} opt_includeInstance Whether to include the JSPB instance\n * for transitional soy proto support: http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.CollapseAllResponse.prototype.toObject = function(opt_includeInstance) {\n return proto.vertexvis.protobuf.scenetree.v1alpha1.CollapseAllResponse.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Whether to include the JSPB\n * instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.vertexvis.protobuf.scenetree.v1alpha1.CollapseAllResponse} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.CollapseAllResponse.toObject = function(includeInstance, msg) {\n var f, obj = {\n\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.vertexvis.protobuf.scenetree.v1alpha1.CollapseAllResponse}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.CollapseAllResponse.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.vertexvis.protobuf.scenetree.v1alpha1.CollapseAllResponse;\n return proto.vertexvis.protobuf.scenetree.v1alpha1.CollapseAllResponse.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.vertexvis.protobuf.scenetree.v1alpha1.CollapseAllResponse} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.vertexvis.protobuf.scenetree.v1alpha1.CollapseAllResponse}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.CollapseAllResponse.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.CollapseAllResponse.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.vertexvis.protobuf.scenetree.v1alpha1.CollapseAllResponse.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.vertexvis.protobuf.scenetree.v1alpha1.CollapseAllResponse} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.CollapseAllResponse.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n};\n\n\n\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.GetNodeAncestorsRequest = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.vertexvis.protobuf.scenetree.v1alpha1.GetNodeAncestorsRequest, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n proto.vertexvis.protobuf.scenetree.v1alpha1.GetNodeAncestorsRequest.displayName = 'proto.vertexvis.protobuf.scenetree.v1alpha1.GetNodeAncestorsRequest';\n}\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto suitable for use in Soy templates.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n * com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS.\n * @param {boolean=} opt_includeInstance Whether to include the JSPB instance\n * for transitional soy proto support: http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.GetNodeAncestorsRequest.prototype.toObject = function(opt_includeInstance) {\n return proto.vertexvis.protobuf.scenetree.v1alpha1.GetNodeAncestorsRequest.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Whether to include the JSPB\n * instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.vertexvis.protobuf.scenetree.v1alpha1.GetNodeAncestorsRequest} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.GetNodeAncestorsRequest.toObject = function(includeInstance, msg) {\n var f, obj = {\n nodeId: (f = msg.getNodeId()) && core_protos_uuid_pb.Uuid.toObject(includeInstance, f)\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.vertexvis.protobuf.scenetree.v1alpha1.GetNodeAncestorsRequest}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.GetNodeAncestorsRequest.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.vertexvis.protobuf.scenetree.v1alpha1.GetNodeAncestorsRequest;\n return proto.vertexvis.protobuf.scenetree.v1alpha1.GetNodeAncestorsRequest.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.vertexvis.protobuf.scenetree.v1alpha1.GetNodeAncestorsRequest} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.vertexvis.protobuf.scenetree.v1alpha1.GetNodeAncestorsRequest}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.GetNodeAncestorsRequest.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = new core_protos_uuid_pb.Uuid;\n reader.readMessage(value,core_protos_uuid_pb.Uuid.deserializeBinaryFromReader);\n msg.setNodeId(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.GetNodeAncestorsRequest.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.vertexvis.protobuf.scenetree.v1alpha1.GetNodeAncestorsRequest.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.vertexvis.protobuf.scenetree.v1alpha1.GetNodeAncestorsRequest} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.GetNodeAncestorsRequest.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getNodeId();\n if (f != null) {\n writer.writeMessage(\n 1,\n f,\n core_protos_uuid_pb.Uuid.serializeBinaryToWriter\n );\n }\n};\n\n\n/**\n * optional vertexvis.protobuf.core.Uuid node_id = 1;\n * @return {?proto.vertexvis.protobuf.core.Uuid}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.GetNodeAncestorsRequest.prototype.getNodeId = function() {\n return /** @type{?proto.vertexvis.protobuf.core.Uuid} */ (\n jspb.Message.getWrapperField(this, core_protos_uuid_pb.Uuid, 1));\n};\n\n\n/** @param {?proto.vertexvis.protobuf.core.Uuid|undefined} value */\nproto.vertexvis.protobuf.scenetree.v1alpha1.GetNodeAncestorsRequest.prototype.setNodeId = function(value) {\n jspb.Message.setWrapperField(this, 1, value);\n};\n\n\nproto.vertexvis.protobuf.scenetree.v1alpha1.GetNodeAncestorsRequest.prototype.clearNodeId = function() {\n this.setNodeId(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {!boolean}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.GetNodeAncestorsRequest.prototype.hasNodeId = function() {\n return jspb.Message.getField(this, 1) != null;\n};\n\n\n\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.GetNodeAncestorsResponse = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, proto.vertexvis.protobuf.scenetree.v1alpha1.GetNodeAncestorsResponse.repeatedFields_, null);\n};\ngoog.inherits(proto.vertexvis.protobuf.scenetree.v1alpha1.GetNodeAncestorsResponse, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n proto.vertexvis.protobuf.scenetree.v1alpha1.GetNodeAncestorsResponse.displayName = 'proto.vertexvis.protobuf.scenetree.v1alpha1.GetNodeAncestorsResponse';\n}\n/**\n * List of repeated fields within this message type.\n * @private {!Array<number>}\n * @const\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.GetNodeAncestorsResponse.repeatedFields_ = [1];\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto suitable for use in Soy templates.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n * com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS.\n * @param {boolean=} opt_includeInstance Whether to include the JSPB instance\n * for transitional soy proto support: http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.GetNodeAncestorsResponse.prototype.toObject = function(opt_includeInstance) {\n return proto.vertexvis.protobuf.scenetree.v1alpha1.GetNodeAncestorsResponse.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Whether to include the JSPB\n * instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.vertexvis.protobuf.scenetree.v1alpha1.GetNodeAncestorsResponse} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.GetNodeAncestorsResponse.toObject = function(includeInstance, msg) {\n var f, obj = {\n itemsList: jspb.Message.toObjectList(msg.getItemsList(),\n scenetree_protos_domain_pb.Node.toObject, includeInstance)\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.vertexvis.protobuf.scenetree.v1alpha1.GetNodeAncestorsResponse}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.GetNodeAncestorsResponse.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.vertexvis.protobuf.scenetree.v1alpha1.GetNodeAncestorsResponse;\n return proto.vertexvis.protobuf.scenetree.v1alpha1.GetNodeAncestorsResponse.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.vertexvis.protobuf.scenetree.v1alpha1.GetNodeAncestorsResponse} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.vertexvis.protobuf.scenetree.v1alpha1.GetNodeAncestorsResponse}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.GetNodeAncestorsResponse.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = new scenetree_protos_domain_pb.Node;\n reader.readMessage(value,scenetree_protos_domain_pb.Node.deserializeBinaryFromReader);\n msg.addItems(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.GetNodeAncestorsResponse.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.vertexvis.protobuf.scenetree.v1alpha1.GetNodeAncestorsResponse.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.vertexvis.protobuf.scenetree.v1alpha1.GetNodeAncestorsResponse} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.GetNodeAncestorsResponse.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getItemsList();\n if (f.length > 0) {\n writer.writeRepeatedMessage(\n 1,\n f,\n scenetree_protos_domain_pb.Node.serializeBinaryToWriter\n );\n }\n};\n\n\n/**\n * repeated Node items = 1;\n * @return {!Array<!proto.vertexvis.protobuf.scenetree.v1alpha1.Node>}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.GetNodeAncestorsResponse.prototype.getItemsList = function() {\n return /** @type{!Array<!proto.vertexvis.protobuf.scenetree.v1alpha1.Node>} */ (\n jspb.Message.getRepeatedWrapperField(this, scenetree_protos_domain_pb.Node, 1));\n};\n\n\n/** @param {!Array<!proto.vertexvis.protobuf.scenetree.v1alpha1.Node>} value */\nproto.vertexvis.protobuf.scenetree.v1alpha1.GetNodeAncestorsResponse.prototype.setItemsList = function(value) {\n jspb.Message.setRepeatedWrapperField(this, 1, value);\n};\n\n\n/**\n * @param {!proto.vertexvis.protobuf.scenetree.v1alpha1.Node=} opt_value\n * @param {number=} opt_index\n * @return {!proto.vertexvis.protobuf.scenetree.v1alpha1.Node}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.GetNodeAncestorsResponse.prototype.addItems = function(opt_value, opt_index) {\n return jspb.Message.addToRepeatedWrapperField(this, 1, opt_value, proto.vertexvis.protobuf.scenetree.v1alpha1.Node, opt_index);\n};\n\n\nproto.vertexvis.protobuf.scenetree.v1alpha1.GetNodeAncestorsResponse.prototype.clearItemsList = function() {\n this.setItemsList([]);\n};\n\n\n\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.GetAvailableColumnsRequest = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.vertexvis.protobuf.scenetree.v1alpha1.GetAvailableColumnsRequest, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n proto.vertexvis.protobuf.scenetree.v1alpha1.GetAvailableColumnsRequest.displayName = 'proto.vertexvis.protobuf.scenetree.v1alpha1.GetAvailableColumnsRequest';\n}\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto suitable for use in Soy templates.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n * com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS.\n * @param {boolean=} opt_includeInstance Whether to include the JSPB instance\n * for transitional soy proto support: http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.GetAvailableColumnsRequest.prototype.toObject = function(opt_includeInstance) {\n return proto.vertexvis.protobuf.scenetree.v1alpha1.GetAvailableColumnsRequest.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Whether to include the JSPB\n * instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.vertexvis.protobuf.scenetree.v1alpha1.GetAvailableColumnsRequest} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.GetAvailableColumnsRequest.toObject = function(includeInstance, msg) {\n var f, obj = {\n\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.vertexvis.protobuf.scenetree.v1alpha1.GetAvailableColumnsRequest}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.GetAvailableColumnsRequest.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.vertexvis.protobuf.scenetree.v1alpha1.GetAvailableColumnsRequest;\n return proto.vertexvis.protobuf.scenetree.v1alpha1.GetAvailableColumnsRequest.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.vertexvis.protobuf.scenetree.v1alpha1.GetAvailableColumnsRequest} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.vertexvis.protobuf.scenetree.v1alpha1.GetAvailableColumnsRequest}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.GetAvailableColumnsRequest.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.GetAvailableColumnsRequest.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.vertexvis.protobuf.scenetree.v1alpha1.GetAvailableColumnsRequest.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.vertexvis.protobuf.scenetree.v1alpha1.GetAvailableColumnsRequest} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.GetAvailableColumnsRequest.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n};\n\n\n\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.GetAvailableColumnsResponse = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, proto.vertexvis.protobuf.scenetree.v1alpha1.GetAvailableColumnsResponse.repeatedFields_, null);\n};\ngoog.inherits(proto.vertexvis.protobuf.scenetree.v1alpha1.GetAvailableColumnsResponse, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n proto.vertexvis.protobuf.scenetree.v1alpha1.GetAvailableColumnsResponse.displayName = 'proto.vertexvis.protobuf.scenetree.v1alpha1.GetAvailableColumnsResponse';\n}\n/**\n * List of repeated fields within this message type.\n * @private {!Array<number>}\n * @const\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.GetAvailableColumnsResponse.repeatedFields_ = [1];\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto suitable for use in Soy templates.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n * com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS.\n * @param {boolean=} opt_includeInstance Whether to include the JSPB instance\n * for transitional soy proto support: http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.GetAvailableColumnsResponse.prototype.toObject = function(opt_includeInstance) {\n return proto.vertexvis.protobuf.scenetree.v1alpha1.GetAvailableColumnsResponse.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Whether to include the JSPB\n * instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.vertexvis.protobuf.scenetree.v1alpha1.GetAvailableColumnsResponse} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.GetAvailableColumnsResponse.toObject = function(includeInstance, msg) {\n var f, obj = {\n keysList: jspb.Message.toObjectList(msg.getKeysList(),\n scenetree_protos_domain_pb.ColumnKey.toObject, includeInstance)\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.vertexvis.protobuf.scenetree.v1alpha1.GetAvailableColumnsResponse}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.GetAvailableColumnsResponse.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.vertexvis.protobuf.scenetree.v1alpha1.GetAvailableColumnsResponse;\n return proto.vertexvis.protobuf.scenetree.v1alpha1.GetAvailableColumnsResponse.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.vertexvis.protobuf.scenetree.v1alpha1.GetAvailableColumnsResponse} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.vertexvis.protobuf.scenetree.v1alpha1.GetAvailableColumnsResponse}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.GetAvailableColumnsResponse.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = new scenetree_protos_domain_pb.ColumnKey;\n reader.readMessage(value,scenetree_protos_domain_pb.ColumnKey.deserializeBinaryFromReader);\n msg.addKeys(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.GetAvailableColumnsResponse.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.vertexvis.protobuf.scenetree.v1alpha1.GetAvailableColumnsResponse.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.vertexvis.protobuf.scenetree.v1alpha1.GetAvailableColumnsResponse} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.GetAvailableColumnsResponse.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getKeysList();\n if (f.length > 0) {\n writer.writeRepeatedMessage(\n 1,\n f,\n scenetree_protos_domain_pb.ColumnKey.serializeBinaryToWriter\n );\n }\n};\n\n\n/**\n * repeated ColumnKey keys = 1;\n * @return {!Array<!proto.vertexvis.protobuf.scenetree.v1alpha1.ColumnKey>}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.GetAvailableColumnsResponse.prototype.getKeysList = function() {\n return /** @type{!Array<!proto.vertexvis.protobuf.scenetree.v1alpha1.ColumnKey>} */ (\n jspb.Message.getRepeatedWrapperField(this, scenetree_protos_domain_pb.ColumnKey, 1));\n};\n\n\n/** @param {!Array<!proto.vertexvis.protobuf.scenetree.v1alpha1.ColumnKey>} value */\nproto.vertexvis.protobuf.scenetree.v1alpha1.GetAvailableColumnsResponse.prototype.setKeysList = function(value) {\n jspb.Message.setRepeatedWrapperField(this, 1, value);\n};\n\n\n/**\n * @param {!proto.vertexvis.protobuf.scenetree.v1alpha1.ColumnKey=} opt_value\n * @param {number=} opt_index\n * @return {!proto.vertexvis.protobuf.scenetree.v1alpha1.ColumnKey}\n */\nproto.vertexvis.protobuf.scenetree.v1alpha1.GetAvailableColumnsResponse.prototype.addKeys = function(opt_value, opt_index) {\n return jspb.Message.addToRepeatedWrapperField(this, 1, opt_value, proto.vertexvis.protobuf.scenetree.v1alpha1.ColumnKey, opt_index);\n};\n\n\nproto.vertexvis.protobuf.scenetree.v1alpha1.GetAvailableColumnsResponse.prototype.clearKeysList = function() {\n this.setKeysList([]);\n};\n\n\ngoog.object.extend(exports, proto.vertexvis.protobuf.scenetree.v1alpha1);\n","import { CustomError } from '../../../lib/errors';\n\nexport enum SceneTreeErrorCode {\n UNKNOWN = 0,\n SCENE_TREE_DISABLED = 1,\n MISSING_VIEWER = 2,\n DISCONNECTED = 3,\n SUBSCRIPTION_FAILURE = 4,\n UNAUTHORIZED = 5,\n ABORTED = 6,\n}\n\nexport class SceneTreeErrorDetails {\n public readonly message: string;\n\n public constructor(\n public readonly name: keyof typeof SceneTreeErrorCode,\n public readonly code: SceneTreeErrorCode,\n public readonly link?: string\n ) {\n this.message = getSceneTreeErrorMessage(code);\n }\n}\n\nfunction getSceneTreeErrorMessage(code: SceneTreeErrorCode): string {\n switch (code) {\n case SceneTreeErrorCode.UNKNOWN:\n return 'An unknown error occurred.';\n case SceneTreeErrorCode.SCENE_TREE_DISABLED:\n return 'The tree for this scene is not enabled. Enable the tree for this scene to interact with the tree.';\n case SceneTreeErrorCode.MISSING_VIEWER:\n return 'Could not find reference to the viewer.';\n case SceneTreeErrorCode.DISCONNECTED:\n return 'Disconnected from server.';\n case SceneTreeErrorCode.SUBSCRIPTION_FAILURE:\n return 'The tree was not able to receive subscription events.';\n case SceneTreeErrorCode.UNAUTHORIZED:\n return 'The tree was unauthorized to connect to the server. The associated Viewer may not be connected.';\n case SceneTreeErrorCode.ABORTED:\n return 'Unable to load the tree for this scene.';\n }\n}\n\nexport class SceneTreeError extends CustomError {\n public constructor(message: string, e?: Error) {\n super(message, e);\n\n // Allows for `instanceof` checks.\n Object.setPrototypeOf(this, SceneTreeError.prototype);\n }\n}\n\nexport class SceneTreeUnauthorizedError extends SceneTreeError {\n public constructor(message: string, e?: Error) {\n super(message, e);\n\n // Allows for `instanceof` checks.\n Object.setPrototypeOf(this, SceneTreeUnauthorizedError.prototype);\n }\n}\n\nexport class SceneTreeConnectionCancelledError extends SceneTreeError {\n public constructor(message: string, e?: Error) {\n super(message, e);\n\n // Allows for `instanceof` checks.\n Object.setPrototypeOf(this, SceneTreeConnectionCancelledError.prototype);\n }\n}\n\nexport class SceneTreeOperationFailedError extends SceneTreeError {\n public constructor(message: string, e?: Error) {\n super(message, e);\n\n // Allows for `instanceof` checks.\n Object.setPrototypeOf(this, SceneTreeOperationFailedError.prototype);\n }\n}\n","// package: vertexvis.protobuf.scenetree.v1alpha1\n// file: scenetree/protos/scene_tree_api.proto\n\nvar scenetree_protos_scene_tree_api_pb = require(\"../../scenetree/protos/scene_tree_api_pb\");\nvar grpc = require(\"@improbable-eng/grpc-web\").grpc;\n\nvar SceneTreeAPI = (function () {\n function SceneTreeAPI() {}\n SceneTreeAPI.serviceName = \"vertexvis.protobuf.scenetree.v1alpha1.SceneTreeAPI\";\n return SceneTreeAPI;\n}());\n\nSceneTreeAPI.GetTree = {\n methodName: \"GetTree\",\n service: SceneTreeAPI,\n requestStream: false,\n responseStream: false,\n requestType: scenetree_protos_scene_tree_api_pb.GetTreeRequest,\n responseType: scenetree_protos_scene_tree_api_pb.GetTreeResponse\n};\n\nSceneTreeAPI.ExpandNode = {\n methodName: \"ExpandNode\",\n service: SceneTreeAPI,\n requestStream: false,\n responseStream: false,\n requestType: scenetree_protos_scene_tree_api_pb.ExpandNodeRequest,\n responseType: scenetree_protos_scene_tree_api_pb.ExpandNodeResponse\n};\n\nSceneTreeAPI.CollapseNode = {\n methodName: \"CollapseNode\",\n service: SceneTreeAPI,\n requestStream: false,\n responseStream: false,\n requestType: scenetree_protos_scene_tree_api_pb.CollapseNodeRequest,\n responseType: scenetree_protos_scene_tree_api_pb.CollapseNodeResponse\n};\n\nSceneTreeAPI.Subscribe = {\n methodName: \"Subscribe\",\n service: SceneTreeAPI,\n requestStream: false,\n responseStream: true,\n requestType: scenetree_protos_scene_tree_api_pb.SubscribeRequest,\n responseType: scenetree_protos_scene_tree_api_pb.SubscribeResponse\n};\n\nSceneTreeAPI.Filter = {\n methodName: \"Filter\",\n service: SceneTreeAPI,\n requestStream: false,\n responseStream: false,\n requestType: scenetree_protos_scene_tree_api_pb.FilterRequest,\n responseType: scenetree_protos_scene_tree_api_pb.FilterResponse\n};\n\nSceneTreeAPI.LocateItem = {\n methodName: \"LocateItem\",\n service: SceneTreeAPI,\n requestStream: false,\n responseStream: false,\n requestType: scenetree_protos_scene_tree_api_pb.LocateItemRequest,\n responseType: scenetree_protos_scene_tree_api_pb.LocateItemResponse\n};\n\nSceneTreeAPI.ExpandAll = {\n methodName: \"ExpandAll\",\n service: SceneTreeAPI,\n requestStream: false,\n responseStream: false,\n requestType: scenetree_protos_scene_tree_api_pb.ExpandAllRequest,\n responseType: scenetree_protos_scene_tree_api_pb.ExpandAllResponse\n};\n\nSceneTreeAPI.CollapseAll = {\n methodName: \"CollapseAll\",\n service: SceneTreeAPI,\n requestStream: false,\n responseStream: false,\n requestType: scenetree_protos_scene_tree_api_pb.CollapseAllRequest,\n responseType: scenetree_protos_scene_tree_api_pb.CollapseAllResponse\n};\n\nSceneTreeAPI.GetNodeAncestors = {\n methodName: \"GetNodeAncestors\",\n service: SceneTreeAPI,\n requestStream: false,\n responseStream: false,\n requestType: scenetree_protos_scene_tree_api_pb.GetNodeAncestorsRequest,\n responseType: scenetree_protos_scene_tree_api_pb.GetNodeAncestorsResponse\n};\n\nSceneTreeAPI.GetAvailableColumns = {\n methodName: \"GetAvailableColumns\",\n service: SceneTreeAPI,\n requestStream: false,\n responseStream: false,\n requestType: scenetree_protos_scene_tree_api_pb.GetAvailableColumnsRequest,\n responseType: scenetree_protos_scene_tree_api_pb.GetAvailableColumnsResponse\n};\n\nexports.SceneTreeAPI = SceneTreeAPI;\n\nfunction SceneTreeAPIClient(serviceHost, options) {\n this.serviceHost = serviceHost;\n this.options = options || {};\n}\n\nSceneTreeAPIClient.prototype.getTree = function getTree(requestMessage, metadata, callback) {\n if (arguments.length === 2) {\n callback = arguments[1];\n }\n var client = grpc.unary(SceneTreeAPI.GetTree, {\n request: requestMessage,\n host: this.serviceHost,\n metadata: metadata,\n transport: this.options.transport,\n debug: this.options.debug,\n onEnd: function (response) {\n if (callback) {\n if (response.status !== grpc.Code.OK) {\n var err = new Error(response.statusMessage);\n err.code = response.status;\n err.metadata = response.trailers;\n callback(err, null);\n } else {\n callback(null, response.message);\n }\n }\n }\n });\n return {\n cancel: function () {\n callback = null;\n client.close();\n }\n };\n};\n\nSceneTreeAPIClient.prototype.expandNode = function expandNode(requestMessage, metadata, callback) {\n if (arguments.length === 2) {\n callback = arguments[1];\n }\n var client = grpc.unary(SceneTreeAPI.ExpandNode, {\n request: requestMessage,\n host: this.serviceHost,\n metadata: metadata,\n transport: this.options.transport,\n debug: this.options.debug,\n onEnd: function (response) {\n if (callback) {\n if (response.status !== grpc.Code.OK) {\n var err = new Error(response.statusMessage);\n err.code = response.status;\n err.metadata = response.trailers;\n callback(err, null);\n } else {\n callback(null, response.message);\n }\n }\n }\n });\n return {\n cancel: function () {\n callback = null;\n client.close();\n }\n };\n};\n\nSceneTreeAPIClient.prototype.collapseNode = function collapseNode(requestMessage, metadata, callback) {\n if (arguments.length === 2) {\n callback = arguments[1];\n }\n var client = grpc.unary(SceneTreeAPI.CollapseNode, {\n request: requestMessage,\n host: this.serviceHost,\n metadata: metadata,\n transport: this.options.transport,\n debug: this.options.debug,\n onEnd: function (response) {\n if (callback) {\n if (response.status !== grpc.Code.OK) {\n var err = new Error(response.statusMessage);\n err.code = response.status;\n err.metadata = response.trailers;\n callback(err, null);\n } else {\n callback(null, response.message);\n }\n }\n }\n });\n return {\n cancel: function () {\n callback = null;\n client.close();\n }\n };\n};\n\nSceneTreeAPIClient.prototype.subscribe = function subscribe(requestMessage, metadata) {\n var listeners = {\n data: [],\n end: [],\n status: []\n };\n var client = grpc.invoke(SceneTreeAPI.Subscribe, {\n request: requestMessage,\n host: this.serviceHost,\n metadata: metadata,\n transport: this.options.transport,\n debug: this.options.debug,\n onMessage: function (responseMessage) {\n listeners.data.forEach(function (handler) {\n handler(responseMessage);\n });\n },\n onEnd: function (status, statusMessage, trailers) {\n listeners.status.forEach(function (handler) {\n handler({ code: status, details: statusMessage, metadata: trailers });\n });\n listeners.end.forEach(function (handler) {\n handler({ code: status, details: statusMessage, metadata: trailers });\n });\n listeners = null;\n }\n });\n return {\n on: function (type, handler) {\n listeners[type].push(handler);\n return this;\n },\n cancel: function () {\n listeners = null;\n client.close();\n }\n };\n};\n\nSceneTreeAPIClient.prototype.filter = function filter(requestMessage, metadata, callback) {\n if (arguments.length === 2) {\n callback = arguments[1];\n }\n var client = grpc.unary(SceneTreeAPI.Filter, {\n request: requestMessage,\n host: this.serviceHost,\n metadata: metadata,\n transport: this.options.transport,\n debug: this.options.debug,\n onEnd: function (response) {\n if (callback) {\n if (response.status !== grpc.Code.OK) {\n var err = new Error(response.statusMessage);\n err.code = response.status;\n err.metadata = response.trailers;\n callback(err, null);\n } else {\n callback(null, response.message);\n }\n }\n }\n });\n return {\n cancel: function () {\n callback = null;\n client.close();\n }\n };\n};\n\nSceneTreeAPIClient.prototype.locateItem = function locateItem(requestMessage, metadata, callback) {\n if (arguments.length === 2) {\n callback = arguments[1];\n }\n var client = grpc.unary(SceneTreeAPI.LocateItem, {\n request: requestMessage,\n host: this.serviceHost,\n metadata: metadata,\n transport: this.options.transport,\n debug: this.options.debug,\n onEnd: function (response) {\n if (callback) {\n if (response.status !== grpc.Code.OK) {\n var err = new Error(response.statusMessage);\n err.code = response.status;\n err.metadata = response.trailers;\n callback(err, null);\n } else {\n callback(null, response.message);\n }\n }\n }\n });\n return {\n cancel: function () {\n callback = null;\n client.close();\n }\n };\n};\n\nSceneTreeAPIClient.prototype.expandAll = function expandAll(requestMessage, metadata, callback) {\n if (arguments.length === 2) {\n callback = arguments[1];\n }\n var client = grpc.unary(SceneTreeAPI.ExpandAll, {\n request: requestMessage,\n host: this.serviceHost,\n metadata: metadata,\n transport: this.options.transport,\n debug: this.options.debug,\n onEnd: function (response) {\n if (callback) {\n if (response.status !== grpc.Code.OK) {\n var err = new Error(response.statusMessage);\n err.code = response.status;\n err.metadata = response.trailers;\n callback(err, null);\n } else {\n callback(null, response.message);\n }\n }\n }\n });\n return {\n cancel: function () {\n callback = null;\n client.close();\n }\n };\n};\n\nSceneTreeAPIClient.prototype.collapseAll = function collapseAll(requestMessage, metadata, callback) {\n if (arguments.length === 2) {\n callback = arguments[1];\n }\n var client = grpc.unary(SceneTreeAPI.CollapseAll, {\n request: requestMessage,\n host: this.serviceHost,\n metadata: metadata,\n transport: this.options.transport,\n debug: this.options.debug,\n onEnd: function (response) {\n if (callback) {\n if (response.status !== grpc.Code.OK) {\n var err = new Error(response.statusMessage);\n err.code = response.status;\n err.metadata = response.trailers;\n callback(err, null);\n } else {\n callback(null, response.message);\n }\n }\n }\n });\n return {\n cancel: function () {\n callback = null;\n client.close();\n }\n };\n};\n\nSceneTreeAPIClient.prototype.getNodeAncestors = function getNodeAncestors(requestMessage, metadata, callback) {\n if (arguments.length === 2) {\n callback = arguments[1];\n }\n var client = grpc.unary(SceneTreeAPI.GetNodeAncestors, {\n request: requestMessage,\n host: this.serviceHost,\n metadata: metadata,\n transport: this.options.transport,\n debug: this.options.debug,\n onEnd: function (response) {\n if (callback) {\n if (response.status !== grpc.Code.OK) {\n var err = new Error(response.statusMessage);\n err.code = response.status;\n err.metadata = response.trailers;\n callback(err, null);\n } else {\n callback(null, response.message);\n }\n }\n }\n });\n return {\n cancel: function () {\n callback = null;\n client.close();\n }\n };\n};\n\nSceneTreeAPIClient.prototype.getAvailableColumns = function getAvailableColumns(requestMessage, metadata, callback) {\n if (arguments.length === 2) {\n callback = arguments[1];\n }\n var client = grpc.unary(SceneTreeAPI.GetAvailableColumns, {\n request: requestMessage,\n host: this.serviceHost,\n metadata: metadata,\n transport: this.options.transport,\n debug: this.options.debug,\n onEnd: function (response) {\n if (callback) {\n if (response.status !== grpc.Code.OK) {\n var err = new Error(response.statusMessage);\n err.code = response.status;\n err.metadata = response.trailers;\n callback(err, null);\n } else {\n callback(null, response.message);\n }\n }\n }\n });\n return {\n cancel: function () {\n callback = null;\n client.close();\n }\n };\n};\n\nexports.SceneTreeAPIClient = SceneTreeAPIClient;\n\n","import { grpc } from '@improbable-eng/grpc-web';\nimport {\n Transport,\n TransportOptions,\n} from '@improbable-eng/grpc-web/dist/typings/transports/Transport';\nimport {\n SceneTreeAPI,\n ServiceError,\n} from '@vertexvis/scene-tree-protos/scenetree/protos/scene_tree_api_pb_service';\n\nexport function isGrpcServiceError(err: any): err is ServiceError {\n return typeof err.code === 'number' && err.hasOwnProperty('metadata');\n}\n\nexport function webSocketSubscriptionTransportFactory(\n options: TransportOptions\n): Transport {\n if (\n options.methodDefinition.methodName === SceneTreeAPI.Subscribe.methodName\n ) {\n return grpc.WebsocketTransport()(options);\n } else {\n return grpc.CrossBrowserHttpTransport({ withCredentials: false })(options);\n }\n}\n","function e(e){this.message=e}e.prototype=new Error,e.prototype.name=\"InvalidCharacterError\";var r=\"undefined\"!=typeof window&&window.atob&&window.atob.bind(window)||function(r){var t=String(r).replace(/=+$/,\"\");if(t.length%4==1)throw new e(\"'atob' failed: The string to be decoded is not correctly encoded.\");for(var n,o,a=0,i=0,c=\"\";o=t.charAt(i++);~o&&(n=a%4?64*n+o:o,a++%4)?c+=String.fromCharCode(255&n>>(-2*a&6)):0)o=\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\".indexOf(o);return c};function t(e){var t=e.replace(/-/g,\"+\").replace(/_/g,\"/\");switch(t.length%4){case 0:break;case 2:t+=\"==\";break;case 3:t+=\"=\";break;default:throw\"Illegal base64url string!\"}try{return function(e){return decodeURIComponent(r(e).replace(/(.)/g,(function(e,r){var t=r.charCodeAt(0).toString(16).toUpperCase();return t.length<2&&(t=\"0\"+t),\"%\"+t})))}(t)}catch(e){return r(t)}}function n(e){this.message=e}function o(e,r){if(\"string\"!=typeof e)throw new n(\"Invalid token specified\");var o=!0===(r=r||{}).header?0:1;try{return JSON.parse(t(e.split(\".\")[o]))}catch(e){throw new n(\"Invalid token specified: \"+e.message)}}n.prototype=new Error,n.prototype.name=\"InvalidTokenError\";export default o;export{n as InvalidTokenError};\n//# sourceMappingURL=jwt-decode.esm.js.map\n","import jwtDecode, { JwtPayload } from 'jwt-decode';\n\nexport interface SceneTreeJwtToken extends JwtPayload {\n view: string;\n}\n\nexport function decodeSceneTreeJwt(jwt: string): SceneTreeJwtToken {\n return jwtDecode<SceneTreeJwtToken>(jwt);\n}\n","import { grpc } from '@improbable-eng/grpc-web';\nimport { OffsetPager } from '@vertexvis/scene-tree-protos/core/protos/paging_pb';\nimport { Uuid } from '@vertexvis/scene-tree-protos/core/protos/uuid_pb';\nimport { Node } from '@vertexvis/scene-tree-protos/scenetree/protos/domain_pb';\nimport {\n CollapseAllRequest,\n CollapseNodeRequest,\n ExpandAllRequest,\n ExpandNodeRequest,\n FilterRequest,\n FilterResponse,\n GetAvailableColumnsRequest,\n GetAvailableColumnsResponse,\n GetNodeAncestorsRequest,\n GetNodeAncestorsResponse,\n GetTreeRequest,\n GetTreeResponse,\n LocateItemRequest,\n LocateItemResponse,\n SubscribeRequest,\n SubscribeResponse,\n} from '@vertexvis/scene-tree-protos/scenetree/protos/scene_tree_api_pb';\nimport {\n ResponseStream,\n SceneTreeAPIClient,\n ServiceError,\n UnaryResponse,\n} from '@vertexvis/scene-tree-protos/scenetree/protos/scene_tree_api_pb_service';\nimport { Disposable, EventDispatcher, Listener } from '@vertexvis/utils';\n\nimport { MetadataKey } from '../types';\nimport {\n SceneTreeConnectionCancelledError,\n SceneTreeError,\n SceneTreeErrorCode,\n SceneTreeErrorDetails,\n SceneTreeOperationFailedError,\n SceneTreeUnauthorizedError,\n} from './errors';\nimport { isGrpcServiceError } from './grpc';\nimport { decodeSceneTreeJwt } from './jwt';\nimport { fromNodeProto, isLoadedRow, Row } from './row';\n\nexport interface ConnectOptions {\n spinnerDelay: number;\n idleReconnectInSeconds?: number;\n lostConnectionReconnectInSeconds?: number;\n subscriptionHandshakeGracePeriodInMs?: number;\n}\n\nexport type JwtProvider = () => string | undefined;\n\nexport interface SceneTreeState {\n totalRows: number;\n totalFilteredRows?: number;\n rows: Row[];\n connection: ConnectionState;\n isSearching: boolean;\n shouldShowLoading?: boolean;\n shouldShowEmptyResults?: boolean;\n filterTerm?: string;\n handshakeReceived?: boolean;\n firstFetchComplete?: boolean;\n}\n\ninterface Page {\n id: number;\n index: number;\n metadataKeys: MetadataKey[];\n res: Promise<GetTreeResponse>;\n}\n\nexport interface DisconnectedState {\n type: 'disconnected';\n jwtProvider?: JwtProvider;\n sceneViewId?: string;\n}\n\nexport interface ConnectingState {\n type: 'connecting';\n jwtProvider: JwtProvider;\n sceneViewId: string;\n}\n\nexport interface SubscriptionStatusState {\n attempt: number;\n stream: ResponseStream<SubscribeResponse>;\n}\n\nexport interface ConnectedState {\n type: 'connected';\n jwtProvider: JwtProvider;\n sceneViewId: string;\n subscription: Disposable;\n subscriptionStatusState?: SubscriptionStatusState;\n}\n\nexport interface ConnectionFailedState {\n type: 'failure';\n details: SceneTreeErrorDetails;\n jwtProvider: JwtProvider;\n sceneViewId: string;\n}\n\nexport interface ConnectionCancelledState {\n type: 'cancelled';\n jwtProvider?: JwtProvider;\n sceneViewId?: string;\n}\n\n/**\n * A set of options to configure tree filtering behavior.\n */\nexport interface FilterTreeOptions {\n /**\n * Indicates if the filter should include nodes that within collapsed parent\n * nodes.\n */\n includeCollapsed?: boolean;\n\n /**\n * Indicates if the filter should be an exact match with the results.\n */\n exactMatch?: boolean;\n\n /**\n * Indicates whether the metadata search should remove hidden items from the results.\n */\n removeHiddenItems?: boolean;\n\n /**\n * The metadata keys to filter the tree on.\n */\n columns?: MetadataKey[];\n}\n\ntype ConnectionState =\n | DisconnectedState\n | ConnectingState\n | ConnectedState\n | ConnectionFailedState\n | ConnectionCancelledState;\n\n/**\n * The `SceneTreeController` is responsible for coordinating interactions of the\n * view, fetching and mutating tree data on the server, maintaining state and\n * notifying the view about state changes.\n */\nexport class SceneTreeController {\n private static IDLE_RECONNECT_IN_SECONDS = 4 * 60;\n private static LOST_CONNECTION_RECONNECT_IN_SECONDS = 2;\n private static MAX_SUBSCRIPTION_RETRY_COUNT = 2;\n\n private nextPageId = 0;\n private pages = new Map<number, Page>();\n private activeRowRange = [0, 0];\n private metadataKeys: MetadataKey[] = [];\n private debugLogs = false;\n private pendingFilterGrpcRes?: UnaryResponse;\n\n private reconnectTimer?: number;\n private loadingTimer?: number;\n private subscriptionHandshakeTimer?: number;\n\n /**\n * A dispatcher that emits an event whenever the internal state has changed.\n */\n public onStateChange = new EventDispatcher<SceneTreeState>();\n\n private state: SceneTreeState = {\n totalRows: 0,\n isSearching: false,\n rows: [],\n connection: { type: 'disconnected' },\n };\n\n /**\n * The number of pages that have been fetched.\n */\n public get fetchedPageCount(): number {\n return this.pages.size;\n }\n\n /**\n * Indicates if the controller is connected to the tree backend, and can make\n * requests.\n */\n public get isConnected(): boolean {\n return this.state.connection.type === 'connected';\n }\n\n public constructor(\n private client: SceneTreeAPIClient,\n private rowLimit: number,\n private connectOptions: ConnectOptions = {\n spinnerDelay: 2000,\n subscriptionHandshakeGracePeriodInMs: 5000,\n }\n ) {}\n\n /**\n * Registers an event listener that will be invoked when the state changes\n *\n * @param listener The listener to add.\n * @returns A disposable that can be used to remove the listener.\n */\n public stateChanged(\n listener: Listener<SceneTreeState | undefined>\n ): Disposable {\n return this.onStateChange.on(listener);\n }\n\n public setDebugLogs(debugLogs: boolean): void {\n this.debugLogs = debugLogs;\n }\n\n private async handleSubscriptionHandshakeTimeout(\n jwtProvider: JwtProvider,\n sceneViewId: string\n ): Promise<void> {\n const connection = this.getState().connection;\n if (\n this.isConnectedState(connection) &&\n connection.subscriptionStatusState?.attempt != null &&\n connection.subscriptionStatusState.attempt <\n SceneTreeController.MAX_SUBSCRIPTION_RETRY_COUNT\n ) {\n const newAttempt = connection.subscriptionStatusState.attempt + 1;\n console.warn(\n `Failed to subscribe within the allotted timeout. Retry attempt={${newAttempt}}`\n );\n connection.subscriptionStatusState.stream.cancel();\n this.clearHandshakeTimer();\n\n const stream = await this.subscribe();\n\n this.invalidateAfterOffset(0);\n this.fetchUnloadedPagesInActiveRows();\n\n this.updateState({\n ...this.state,\n connection: {\n ...connection,\n type: 'connected',\n subscription: {\n dispose: () => stream.cancel(),\n },\n subscriptionStatusState: {\n attempt: newAttempt,\n stream,\n },\n },\n });\n\n this.subscriptionHandshakeTimer = window.setTimeout(() => {\n this.handleSubscriptionHandshakeTimeout(jwtProvider, sceneViewId);\n }, this.connectOptions.subscriptionHandshakeGracePeriodInMs);\n } else {\n this.updateState({\n ...this.state,\n connection: {\n type: 'failure',\n jwtProvider,\n sceneViewId,\n details: new SceneTreeErrorDetails(\n 'SUBSCRIPTION_FAILURE',\n SceneTreeErrorCode.SUBSCRIPTION_FAILURE\n ),\n },\n });\n }\n }\n\n public async connect(jwtProvider: JwtProvider): Promise<void> {\n const { connection } = this.state;\n const jwt = jwtProvider();\n\n if (jwt == null) {\n throw new SceneTreeUnauthorizedError(\n 'Cannot connect scene tree. JWT is undefined'\n );\n }\n\n const { view: sceneViewId } = decodeSceneTreeJwt(jwt);\n\n if (connection.sceneViewId !== sceneViewId) {\n this.disconnect(true);\n } else {\n this.disconnect(false);\n }\n\n const connecting: ConnectingState = {\n type: 'connecting',\n jwtProvider,\n sceneViewId,\n };\n this.updateState({ ...this.state, connection: connecting });\n\n try {\n this.log('Scene tree controller connecting.');\n\n this.restartLoadingTimer();\n // Ensure we have a subscription prior to attempting to get the first page\n // to make sure we receive any ListChange that comes through\n const stream = await this.subscribe();\n await this.fetchPage(0);\n\n if (this.state.connection.type !== 'cancelled') {\n this.updateState({\n ...this.state,\n connection: {\n jwtProvider,\n sceneViewId,\n type: 'connected',\n subscription: { dispose: () => stream.cancel() },\n subscriptionStatusState: {\n attempt: 0,\n stream,\n },\n },\n });\n\n this.restartHandshakeTimer(jwtProvider, sceneViewId);\n }\n } catch (e) {\n this.ifErrorIsFatal(e, () => {\n this.updateState({\n ...this.state,\n connection: {\n type: 'failure',\n jwtProvider,\n sceneViewId,\n details: this.getConnectionError(e),\n },\n });\n this.clearHandshakeTimer();\n throw e;\n });\n }\n\n this.startIdleReconnectTimer();\n }\n\n private clearReconnectTimer(): void {\n if (this.reconnectTimer != null) {\n window.clearTimeout(this.reconnectTimer);\n }\n }\n\n private restartHandshakeTimer(\n jwtProvider: JwtProvider,\n sceneViewId: string\n ): void {\n this.clearHandshakeTimer();\n\n if (!this.state.handshakeReceived) {\n this.subscriptionHandshakeTimer = window.setTimeout(() => {\n this.handleSubscriptionHandshakeTimeout(jwtProvider, sceneViewId);\n this.subscriptionHandshakeTimer = undefined;\n }, this.connectOptions.subscriptionHandshakeGracePeriodInMs);\n }\n }\n\n private clearHandshakeTimer(): void {\n if (this.subscriptionHandshakeTimer != null) {\n window.clearTimeout(this.subscriptionHandshakeTimer);\n this.subscriptionHandshakeTimer = undefined;\n }\n }\n\n private startIdleReconnectTimer(): void {\n this.startReconnectTimer(\n this.connectOptions.idleReconnectInSeconds ||\n SceneTreeController.IDLE_RECONNECT_IN_SECONDS\n );\n }\n\n private startConnectionLostReconnectTimer(): void {\n this.startReconnectTimer(\n this.connectOptions.lostConnectionReconnectInSeconds ||\n SceneTreeController.LOST_CONNECTION_RECONNECT_IN_SECONDS\n );\n }\n\n private startReconnectTimer(delayInSeconds: number): void {\n this.clearReconnectTimer();\n\n this.reconnectTimer = window.setTimeout(() => {\n if (this.state.connection.type === 'connected') {\n this.connect(this.state.connection.jwtProvider);\n }\n }, delayInSeconds * 1000);\n }\n\n public connectToViewer(viewer: HTMLVertexViewerElement): Disposable {\n const connectWithViewerJwt = async (): Promise<void> => {\n if (viewer.token != null) {\n this.log(\n 'Scene tree controller found viewer JWT. Attempting connection.'\n );\n\n try {\n await this.connect(() => viewer.token);\n } catch (e) {\n this.ifErrorIsFatal(e, () => {\n console.error('Scene tree controller errored connecting.', e);\n });\n }\n }\n };\n\n const handleSceneReady = (): void => {\n this.log('Scene tree controller received scene ready');\n connectWithViewerJwt();\n };\n\n connectWithViewerJwt();\n\n viewer.addEventListener('sceneReady', handleSceneReady);\n return {\n dispose: () => {\n viewer.removeEventListener('sceneReady', handleSceneReady);\n this.disconnect();\n },\n };\n }\n\n public disconnect(reset = false): void {\n this.log(`Scene tree controller disconnecting [reset=${reset}]`);\n\n this.clearHandshakeTimer();\n this.clearReconnectTimer();\n\n if (reset) {\n this.pages.clear();\n this.activeRowRange = [];\n }\n\n const { connection } = this.state;\n if (connection.type === 'connected') {\n connection.subscription.dispose();\n }\n\n this.updateState({\n connection: {\n type: 'disconnected',\n jwtProvider: connection.jwtProvider,\n sceneViewId: connection.sceneViewId,\n },\n isSearching: false,\n totalRows: reset ? 0 : this.state.totalRows,\n rows: reset ? [] : this.state.rows,\n filterTerm: reset ? undefined : this.state.filterTerm,\n totalFilteredRows: reset ? undefined : this.state.totalFilteredRows,\n shouldShowEmptyResults: reset\n ? undefined\n : this.state.shouldShowEmptyResults,\n handshakeReceived: reset ? undefined : this.state.handshakeReceived,\n firstFetchComplete: reset ? undefined : this.state.firstFetchComplete,\n });\n }\n\n public cancel(): void {\n this.log(`Scene tree controller cancelled`);\n\n this.clearHandshakeTimer();\n this.clearReconnectTimer();\n\n this.pages.clear();\n this.activeRowRange = [];\n\n const { connection } = this.state;\n if (connection.type === 'connected') {\n connection.subscription.dispose();\n }\n\n this.updateState({\n connection: {\n type: 'cancelled',\n jwtProvider: connection.jwtProvider,\n sceneViewId: connection.sceneViewId,\n },\n isSearching: false,\n totalRows: 0,\n rows: [],\n });\n }\n\n /**\n * Collapses a node with the given node ID.\n *\n * @param id A node ID to collapse.\n */\n public async collapseNode(id: string): Promise<void> {\n return this.ifConnectionHasJwt(async (jwt) => {\n const nodeId = new Uuid();\n nodeId.setHex(id);\n\n const req = new CollapseNodeRequest();\n req.setNodeId(nodeId);\n\n await this.requestUnary(jwt, (metadata, handler) =>\n this.client.collapseNode(req, metadata, handler)\n );\n });\n }\n\n /**\n * Expands a node with the given node ID.\n *\n * @param id A node ID to expand.\n */\n public async expandNode(id: string): Promise<void> {\n return this.ifConnectionHasJwt(async (jwt) => {\n const nodeId = new Uuid();\n nodeId.setHex(id);\n\n const req = new ExpandNodeRequest();\n req.setNodeId(nodeId);\n\n await this.requestUnary(jwt, (metadata, handler) =>\n this.client.expandNode(req, metadata, handler)\n );\n });\n }\n\n /**\n * Collapses all nodes in the tree.\n */\n public async collapseAll(): Promise<void> {\n return this.ifConnectionHasJwt(async (jwt) => {\n await this.requestUnary(jwt, (metadata, handler) =>\n this.client.collapseAll(new CollapseAllRequest(), metadata, handler)\n );\n });\n }\n\n /**\n * Expands all nodes in the tree.\n */\n public async expandAll(): Promise<void> {\n return this.ifConnectionHasJwt(async (jwt) => {\n await this.requestUnary(jwt, (metadata, handler) =>\n this.client.expandAll(new ExpandAllRequest(), metadata, handler)\n );\n });\n }\n\n /**\n * Invokes a network request that will expand all the parent nodes for the\n * node mapped to the given ID.\n *\n * @param id An ID of an item.\n * @returns A promise that resolves with the index of the node after\n * expansion.\n */\n public async expandParentNodes(id: string): Promise<number> {\n return this.ifConnectionHasJwt(async (jwt) => {\n const nodeId = new Uuid();\n nodeId.setHex(id);\n\n const req = new LocateItemRequest();\n req.setNodeId(nodeId);\n\n const res = await this.requestUnary<LocateItemResponse>(\n jwt,\n (metadata, handler) => this.client.locateItem(req, metadata, handler)\n );\n const { requiresReload, locatedIndex } = res.toObject();\n\n if (requiresReload) {\n this.invalidateAfterOffset(0);\n await this.fetchUnloadedPagesInActiveRows();\n }\n\n if (locatedIndex == null) {\n throw new SceneTreeOperationFailedError(\n 'Cannot locate node. Location index is undefined.'\n );\n }\n\n return locatedIndex.value;\n });\n }\n\n public async fetchNodeAncestors(nodeId: string): Promise<Node.AsObject[]> {\n return this.ifConnectionHasJwt(async (jwt) => {\n const nodeUuid = new Uuid();\n nodeUuid.setHex(nodeId);\n const req = new GetNodeAncestorsRequest();\n req.setNodeId(nodeUuid);\n\n const res = await this.requestUnary<GetNodeAncestorsResponse>(\n jwt,\n (metadata, handler) =>\n this.client.getNodeAncestors(req, metadata, handler)\n );\n\n return res.toObject().itemsList;\n });\n }\n\n /**\n * Fetches a page at the given index. Once the data has been fetched, the\n * controller will emit an `onStateChange` event that contains rows with the\n * fetched page. If a page is invalidated before the request completes, the\n * response is ignored.\n *\n * If the index is out of range, returns without fetching any data.\n *\n * @param index A 0 based index to fetch.\n */\n public async fetchPage(index: number): Promise<void> {\n return this.ifConnectionHasJwt(async (jwt) => {\n if (index < 0 || index > this.maxPages - 1) {\n return;\n }\n\n if (!this.pages.has(index)) {\n const offset = index * this.rowLimit;\n this.log('Scene tree fetching page', index, offset);\n const res = this.fetchTree(offset, this.rowLimit, jwt);\n const id = this.nextPageId++;\n const page = { id, res, index, metadataKeys: this.metadataKeys };\n this.pages.set(index, page);\n this.handlePageResult(page);\n }\n\n await this.pages.get(index)?.res;\n });\n }\n\n /**\n * Fetches a page that contains the given row offset.\n *\n * @param offset The row offset of the page to fetch.\n */\n public fetchPageAtOffset(offset: number): Promise<void> {\n const page = Math.floor(offset / this.rowLimit);\n return this.fetchPage(page);\n }\n\n /**\n * Fetches pages that contain the given row ranges.\n *\n * @param startOffset A start offset, inclusive.\n * @param endOffset The end offset, inclusive.\n */\n public async fetchRange(\n startOffset: number,\n endOffset: number\n ): Promise<void> {\n const startPage = Math.floor(startOffset / this.rowLimit);\n const endPage = Math.floor(endOffset / this.rowLimit);\n const [boundedStart, boundedEnd] = this.constrainPageRange(\n startPage,\n endPage\n );\n const pageCount = boundedEnd - boundedStart + 1;\n await Promise.all(\n Array.from({ length: pageCount }).map((_, page) => this.fetchPage(page))\n );\n }\n\n /**\n * Fetches the metadata keys for the current scene view.\n */\n public async fetchMetadataKeys(): Promise<MetadataKey[]> {\n return this.ifConnectionHasJwt(async (jwt) => {\n const res = await this.requestUnary<GetAvailableColumnsResponse>(\n jwt,\n (meta, handler) => {\n const req = new GetAvailableColumnsRequest();\n this.client.getAvailableColumns(req, meta, handler);\n }\n );\n\n return res.getKeysList().map((value) => value.getValue());\n });\n }\n\n /**\n * Performs a network request that will filter the nodes in the tree that\n * match the given term and options.\n *\n * @param term The filter term.\n * @param options The options to apply to the filter.\n */\n public async filter(\n term: string,\n options: FilterTreeOptions = {}\n ): Promise<void> {\n return this.ifConnectionHasJwt(async (jwt) => {\n this.updateState({\n ...this.state,\n isSearching: true,\n filterTerm: term !== '' ? term : undefined,\n });\n\n // Cancel any in-flight filter requests, and wait for the request\n // to complete prior to making another filter request. This prevents\n // a race condition between requests from different keystrokes.\n this.pendingFilterGrpcRes?.cancel();\n this.pendingFilterGrpcRes = undefined;\n\n if (this.state.filterTerm === term || term === '') {\n try {\n const res = await this.requestUnary<FilterResponse>(\n jwt,\n (metadata, handler) => {\n const req = new FilterRequest();\n req.setFilter(term);\n req.setFullTree(options.includeCollapsed ?? true);\n req.setExactMatch(!!options.exactMatch);\n req.setRemoveHiddenItems(!!options.removeHiddenItems);\n if (options.columns) req.setColumnsKeysList(options.columns);\n\n this.pendingFilterGrpcRes = this.client.filter(\n req,\n metadata,\n handler\n );\n }\n );\n\n const { numberOfResults } = res.toObject();\n\n this.updateState({\n ...this.state,\n totalFilteredRows: numberOfResults,\n isSearching: false,\n });\n } catch (e) {\n console.error('Failed to filter search ', e);\n this.updateState({\n ...this.state,\n isSearching: false,\n });\n }\n }\n });\n }\n\n /**\n * Checks if the page at the given index is loaded.\n *\n * @param index A page index.\n * @returns `true` if the page is loaded. `false` otherwise.\n */\n public isPageLoaded(index: number): boolean {\n return this.pages.has(index);\n }\n\n /**\n * Returns a list of page indices within a range that have not been loaded.\n *\n * @param start The start page index, inclusive.\n * @param end The end page index, inclusive.\n * @returns A list of pages indices that have not been loaded.\n */\n public getNonLoadedPageIndexes(start: number, end: number): number[] {\n const [boundedStart, boundedEnd] = this.constrainPageRange(start, end);\n const pageCount = boundedEnd - boundedStart + 1;\n return Array.from({ length: pageCount })\n .map((_, i) => boundedStart + i)\n .filter((page) => !this.isPageLoaded(page));\n }\n\n /**\n * Returns the page at the given index, or `undefined` if one doesn't exist.\n *\n * @param index The index to return.\n * @returns A `Page` if found, otherwise `undefined`.\n */\n public getPage(index: number): Page | undefined {\n return this.pages.get(index);\n }\n\n /**\n * Clears page data that is outside a given range. Uses a distance algorithm\n * to removes pages that are furthest from either end of the range. This\n * method is useful for clearing out data that is not needed anymore to keep\n * memory pressure in the client low.\n *\n * @param startPage The index of the starting page in the range.\n * @param endPage The index of the ending page in the range.\n * @param threshold A minimum number of pages to keep. No cleanup is performed\n * if the number of fetched pages doesn't meet this threshold.\n */\n public invalidatePagesOutsideRange(\n startPage: number,\n endPage: number,\n threshold = 0\n ): void {\n const [boundedStart, boundedEnd] = this.constrainPageRange(\n startPage,\n endPage\n );\n const boundedThreshold = Math.max(boundedEnd - boundedStart, threshold);\n if (this.fetchedPageCount > boundedThreshold) {\n const pages = Array.from(this.pages.keys()).map((index) => {\n const distance =\n index < boundedStart ? boundedStart - index : index - boundedEnd;\n return { index, distance };\n });\n const sortedDesc = pages.sort((a, b) => b.distance - a.distance);\n\n sortedDesc\n .slice(0, pages.length - threshold)\n .forEach(({ index }) => this.invalidatePage(index));\n\n this.log(\n `Scene tree dropped ${pages.length - this.fetchedPageCount} pages`,\n this.pages\n );\n }\n }\n\n public setMetadataKeys(keys: MetadataKey[]): Promise<void> {\n this.metadataKeys = keys;\n\n if (this.state.connection.type === 'connected') {\n const [start, end] = this.activeRowRange;\n this.invalidateAfterOffset(0);\n return this.updateActiveRowRange(start, end);\n } else {\n return Promise.resolve();\n }\n }\n\n /**\n * Sets the active rows. Active rows dictate which pages will be refetched\n * when the tree changes.\n *\n * @param start The starting row index.\n * @param end The ending row index.\n * @returns A promise that resolves when the first page of data has been\n * loaded.\n */\n public async updateActiveRowRange(start: number, end: number): Promise<void> {\n this.activeRowRange = this.constrainRowOffsets(start, end);\n\n this.tryClearLoadingState();\n\n await this.fetchUnloadedPagesInActiveRows();\n }\n\n /**\n * Performs a network request that will listen to server-side changes of the\n * scene tree's data.\n */\n private subscribe(): Promise<ResponseStream<SubscribeResponse>> {\n return this.ifConnectionHasJwt((jwt) => {\n const stream = this.requestServerStream(jwt, (metadata) => {\n const sub = this.client.subscribe(new SubscribeRequest(), metadata);\n return sub;\n });\n\n stream.on('data', (msg: SubscribeResponse) => {\n if (msg.hasHandshake()) {\n this.clearHandshakeTimer();\n this.updateState({ ...this.state, handshakeReceived: true });\n\n // Verify that we've loaded the first page of the tree when we receive\n // a handshake in the case that the listener was not fully registered\n // when a `ListChange` was sent.\n if (this.state.firstFetchComplete) {\n this.log(\n 'Scene tree first fetch completed before handshake received, invalidating current pages'\n );\n\n this.invalidateAfterOffset(0);\n this.fetchUnloadedPagesInActiveRows();\n }\n }\n\n this.startIdleReconnectTimer();\n\n const { change } = msg.toObject();\n\n // Update the number of filtered results if changed\n if (change?.filterChange != null) {\n this.updateState({\n ...this.state,\n totalFilteredRows: change.filterChange.numberOfResults,\n });\n }\n\n if (change?.listChange != null) {\n this.log('Received list change', change.listChange.start);\n this.invalidateAfterOffset(change.listChange.start);\n this.fetchUnloadedPagesInActiveRows();\n }\n\n const {\n hiddenList = [],\n shownList = [],\n partiallyVisibleList = [],\n deselectedList = [],\n selectedList = [],\n } = change?.ranges || {};\n\n if (partiallyVisibleList.length > 0) {\n this.log(\n 'Received partial visibility list change',\n partiallyVisibleList\n );\n\n partiallyVisibleList.forEach(({ start, end }) =>\n this.patchNodesInRange(start, end, () => ({\n partiallyVisible: true,\n }))\n );\n }\n\n if (hiddenList.length > 0) {\n this.log('Received hidden list change', hiddenList);\n\n hiddenList.forEach(({ start, end }) =>\n this.patchNodesInRange(start, end, () => ({\n visible: false,\n partiallyVisible: false,\n }))\n );\n }\n\n if (shownList.length > 0) {\n this.log('Received shown list change', shownList);\n\n shownList.forEach(({ start, end }) =>\n this.patchNodesInRange(start, end, () => ({\n visible: true,\n partiallyVisible: false,\n }))\n );\n }\n\n if (deselectedList.length > 0) {\n this.log('Received deselected list change', deselectedList);\n\n deselectedList.forEach(({ start, end }) =>\n this.patchNodesInRange(start, end, () => ({ selected: false }))\n );\n }\n\n if (selectedList.length > 0) {\n this.log('Received selected list change', selectedList);\n\n selectedList.forEach(({ start, end }) =>\n this.patchNodesInRange(start, end, () => ({ selected: true }))\n );\n }\n });\n\n stream.on('status', (s) => {\n if (s.code !== 0) {\n console.error(\n `Failed to subscribe to scene tree with code=${s.code}, details=${s.details}`\n );\n this.invalidateAfterOffset(0);\n }\n });\n\n stream.on('end', () => {\n this.invalidateAfterOffset(0);\n\n if (this.state.connection.type === 'connected') {\n this.startConnectionLostReconnectTimer();\n }\n });\n\n return stream;\n });\n }\n\n private async fetchUnloadedPagesInActiveRows(): Promise<void> {\n const [startPage, endPage] = this.getPageIndexesForRange(\n // Verify the first page is loaded properly even if the `activeRowRange`\n // has not been specified by the underlying table layout after a reconnect.\n this.activeRowRange[0] ?? 0,\n this.activeRowRange[1] ?? 0\n );\n\n const pages = this.getNonLoadedPageIndexes(startPage - 1, endPage + 1);\n await Promise.all(pages.map((page) => this.fetchPage(page)));\n }\n\n private patchNodesInRange(\n start: number,\n end: number,\n transform: (node: Node.AsObject) => Partial<Node.AsObject>\n ): void {\n const updatedRows = this.state.rows\n .slice(start, end + 1)\n .map((row) =>\n isLoadedRow(row)\n ? { ...row, node: { ...row.node, ...transform(row.node) } }\n : row\n );\n\n const startRows = this.state.rows.slice(0, start);\n const endRows = this.state.rows.slice(end + 1);\n const rows = [...startRows, ...updatedRows, ...endRows];\n\n this.updateState({ ...this.state, rows });\n }\n\n private async handlePageResult(page: Page): Promise<void> {\n try {\n const res = await page.res;\n\n const currentPage = this.getPage(page.index);\n\n // Only handle the result if the page has not been invalidated.\n if (currentPage?.id === page.id) {\n const cursor = res.getCursor();\n const itemsList = res.getItemsList();\n\n const totalRows = cursor?.getTotal() ?? 0;\n const offset = page.index * this.rowLimit;\n const fetchedRows = fromNodeProto(\n offset,\n itemsList,\n currentPage.metadataKeys\n );\n\n const start = this.state.rows.slice(0, offset);\n const end = this.state.rows.slice(\n start.length + fetchedRows.length,\n totalRows\n );\n const fill = new Array(\n Math.max(\n 0,\n totalRows - start.length - fetchedRows.length - end.length\n )\n );\n const rows = [...start, ...fetchedRows, ...end, ...fill];\n\n if (this.isViewLoading(rows) && this.loadingTimer == null) {\n this.restartLoadingTimer();\n\n this.updateState({\n ...this.state,\n totalRows: totalRows,\n rows: rows,\n shouldShowEmptyResults:\n this.state.filterTerm != null &&\n (rows.length === 0 || this.state.totalFilteredRows === 0),\n });\n } else {\n this.updateState({\n ...this.state,\n totalRows: totalRows,\n rows: rows,\n shouldShowLoading:\n rows.length === 0 && this.state.shouldShowLoading,\n shouldShowEmptyResults:\n this.state.filterTerm != null &&\n (rows.length === 0 || this.state.totalFilteredRows === 0),\n firstFetchComplete: true,\n });\n }\n }\n } catch (e) {\n const errorMessage = e instanceof Error ? e.toString() : 'Unknown';\n console.error(\n `Request error fetching page at index ${page.index} (${errorMessage})`\n );\n\n const currentPage = this.getPage(page.index);\n if (currentPage?.id === page.id) {\n this.invalidatePage(page.index);\n }\n }\n }\n\n private invalidatePage(index: number): void {\n if (this.isPageLoaded(index)) {\n this.pages.delete(index);\n }\n }\n\n private invalidateAfterOffset(offset: number): void {\n const pageIndex = Math.floor(offset / this.rowLimit);\n\n for (const index of this.pages.keys()) {\n if (index >= pageIndex) {\n this.invalidatePage(index);\n }\n }\n }\n\n private getState(): SceneTreeState {\n return this.state;\n }\n\n private isViewLoading(rows: Row[]): boolean {\n return (\n this.state.filterTerm == null &&\n rows[this.activeRowRange[0]] == null &&\n rows[this.activeRowRange[1]] == null\n );\n }\n\n private restartLoadingTimer(): void {\n if (this.loadingTimer != null) {\n this.clearLoadingTimer();\n }\n\n this.loadingTimer = window.setTimeout(() => {\n this.loadingTimer = undefined;\n this.updateState({\n ...this.getState(),\n shouldShowLoading: true,\n });\n }, this.connectOptions.spinnerDelay);\n }\n\n private clearLoadingTimer(): void {\n if (this.loadingTimer != null) {\n clearTimeout(this.loadingTimer);\n this.loadingTimer = undefined;\n }\n }\n\n private tryClearLoadingState(): void {\n const didClearLoadingTimer = this.tryClearLoadingTimer(this.state);\n\n if (didClearLoadingTimer) {\n this.updateState({ ...this.state, shouldShowLoading: false });\n }\n }\n\n private tryClearLoadingTimer(state: SceneTreeState): boolean {\n const loadingShowingOrTimerStarted =\n this.state.shouldShowLoading || this.loadingTimer != null;\n const updateLoadingTimer =\n loadingShowingOrTimerStarted && !this.isViewLoading(state.rows);\n if (updateLoadingTimer) {\n this.clearLoadingTimer();\n return true;\n }\n return false;\n }\n\n private updateState(newState: SceneTreeState): void {\n const didClearLoadingTimer = this.tryClearLoadingTimer(newState);\n\n this.state = {\n ...newState,\n shouldShowLoading: didClearLoadingTimer\n ? false\n : newState.shouldShowLoading,\n };\n\n this.onStateChange.emit(this.state);\n }\n\n public getPageForOffset(offset: number): number {\n const index = Math.floor(offset / this.rowLimit);\n return this.constrainPageIndex(index);\n }\n\n public getPageIndexesForRange(start: number, end: number): [number, number] {\n const pageStart = this.getPageForOffset(start);\n const pageEnd = this.getPageForOffset(end);\n return [pageStart, pageEnd];\n }\n\n private async fetchTree(\n offset: number,\n limit: number,\n jwt: string\n ): Promise<GetTreeResponse> {\n return this.requestUnary(jwt, (metadata, handler) => {\n const pager = new OffsetPager();\n pager.setOffset(offset);\n pager.setLimit(limit);\n\n const req = new GetTreeRequest();\n req.setPager(pager);\n req.setAdditionalColumnKeysList(this.metadataKeys);\n\n this.client.getTree(req, metadata, handler);\n });\n }\n\n private requestUnary<R>(\n jwt: string,\n req: (\n metadata: grpc.Metadata,\n handler: (err: ServiceError | null, res: R | null) => void\n ) => void\n ): Promise<R> {\n return new Promise((resolve, reject) => {\n const metadata = this.createJwtMetadata(jwt);\n\n req(metadata, (err, res) => {\n if (err != null) {\n reject(err);\n } else if (res != null) {\n resolve(res);\n } else {\n reject(\n new SceneTreeError(\n 'Invalid response. Both error and result are null'\n )\n );\n }\n });\n });\n }\n\n private requestServerStream<R>(\n jwt: string,\n req: (metadata: grpc.Metadata) => ResponseStream<R>\n ): ResponseStream<R> {\n const metadata = this.createJwtMetadata(jwt);\n return req(metadata);\n }\n\n private createJwtMetadata(jwt: string): grpc.Metadata {\n return new grpc.Metadata({\n 'jwt-context': JSON.stringify({ jwt }),\n });\n }\n\n private async ifConnectionHasJwt<T>(then: (jwt: string) => T): Promise<T> {\n const { connection } = this.state;\n if (connection.type === 'connecting' || connection.type === 'connected') {\n const jwt = await connection.jwtProvider();\n if (jwt != null) {\n return then(jwt);\n } else {\n throw new SceneTreeUnauthorizedError(\n 'SceneTreeController cannot perform request. Viewer JWT is undefined.'\n );\n }\n } else if (connection.type === 'cancelled') {\n throw new SceneTreeConnectionCancelledError(\n `Request attempted, but controller was cancelled`\n );\n } else {\n throw new SceneTreeError('SceneTreeController is not in connected state');\n }\n }\n\n private ifErrorIsFatal(error: unknown, then: VoidFunction): void {\n if (!(error instanceof SceneTreeConnectionCancelledError)) {\n then();\n }\n }\n\n private getConnectionError(\n e: ServiceError | Error | unknown\n ): SceneTreeErrorDetails {\n if (isGrpcServiceError(e)) {\n if (e.code === grpc.Code.FailedPrecondition) {\n return new SceneTreeErrorDetails(\n 'SCENE_TREE_DISABLED',\n SceneTreeErrorCode.SCENE_TREE_DISABLED\n );\n } else if (e.code === grpc.Code.Unauthenticated) {\n return new SceneTreeErrorDetails(\n 'UNAUTHORIZED',\n SceneTreeErrorCode.UNAUTHORIZED\n );\n } else if (e.code === grpc.Code.Aborted) {\n return new SceneTreeErrorDetails('ABORTED', SceneTreeErrorCode.ABORTED);\n } else {\n return new SceneTreeErrorDetails('UNKNOWN', SceneTreeErrorCode.UNKNOWN);\n }\n } else if (e instanceof SceneTreeUnauthorizedError) {\n return new SceneTreeErrorDetails(\n 'UNAUTHORIZED',\n SceneTreeErrorCode.UNAUTHORIZED\n );\n } else {\n return new SceneTreeErrorDetails('UNKNOWN', SceneTreeErrorCode.UNKNOWN);\n }\n }\n\n private constrainPageRange(start: number, end: number): [number, number] {\n return [Math.max(0, start), Math.min(this.maxPages - 1, end)];\n }\n\n private constrainPageIndex(index: number): number {\n return Math.max(0, Math.min(index, this.maxPages - 1));\n }\n\n private constrainRowOffsets(start: number, end: number): [number, number] {\n return [Math.max(0, start), Math.min(this.state.totalRows - 1, end)];\n }\n\n private get maxPages(): number {\n return Math.max(1, Math.ceil(this.state.totalRows / this.rowLimit));\n }\n\n private log(message?: string, ...optionalParams: unknown[]): void {\n if (this.debugLogs) {\n console.debug(message, optionalParams);\n }\n }\n\n private isConnectedState(\n connection: ConnectionState\n ): connection is ConnectedState {\n return connection.type === 'connected';\n }\n}\n"],"version":3}