From c5e02724b2f5d906265e3b34fab9f38c55642bb2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mateusz=20Burzy=C5=84ski?= Date: Fri, 6 Feb 2026 21:22:55 +0100 Subject: [PATCH] Deduplicate repeated declarations on union/intersection properties --- src/compiler/checker.ts | 6 +- .../arrayDestructuringInSwitch1.symbols | 4 +- tests/baselines/reference/arraySlice.symbols | 4 +- .../reference/bestChoiceType.symbols | 12 +- .../reference/bivariantInferences.symbols | 4 +- .../callsOnComplexSignatures.symbols | 4 +- ...ntextualOverloadListFromArrayUnion.symbols | 8 +- .../reference/controlFlowArrayErrors.symbols | 4 +- ...nRepeatedPropDeclarationsNoOOM1.errors.txt | 437 +++++++ ...tionRepeatedPropDeclarationsNoOOM1.symbols | 1100 +++++++++++++++++ ...ectionRepeatedPropDeclarationsNoOOM1.types | 1026 +++++++++++++++ ...(exactoptionalpropertytypes=false).symbols | 8 +- ...4(exactoptionalpropertytypes=true).symbols | 8 +- .../intersectionOfUnionNarrowing.symbols | 4 +- ...CjsExportAssignment(target=es2015).symbols | 4 +- ...sesCjsExportAssignment(target=es5).symbols | 4 +- .../reference/mixinAccessModifiers.symbols | 8 +- ...erAsDiscriminantType(strict=false).symbols | 4 +- ...verAsDiscriminantType(strict=true).symbols | 4 +- .../objectLiteralNormalization.symbols | 20 +- .../recursiveArrayNotCircular.symbols | 8 +- .../reference/silentNeverPropagation.symbols | 8 +- .../reference/sliceResultCast.symbols | 4 +- .../typeParameterExtendingUnion1.symbols | 4 +- .../typeParameterExtendingUnion2.symbols | 8 +- .../reference/typeParameterLeak.symbols | 8 +- ...ypeVariableConstraintIntersections.symbols | 4 +- .../reference/typedefCrossModule2.symbols | 4 +- ...nionCallMixedTypeParameterPresence.symbols | 4 +- .../reference/unionOfArraysFilterCall.symbols | 24 +- .../reference/unionOfClassCalls.symbols | 24 +- ...ersectionRepeatedPropDeclarationsNoOOM1.ts | 431 +++++++ 32 files changed, 3101 insertions(+), 103 deletions(-) create mode 100644 tests/baselines/reference/crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.errors.txt create mode 100644 tests/baselines/reference/crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.symbols create mode 100644 tests/baselines/reference/crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.types create mode 100644 tests/cases/compiler/crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts diff --git a/src/compiler/checker.ts b/src/compiler/checker.ts index 8fa3c4fce2a4a..35574773c2b27 100644 --- a/src/compiler/checker.ts +++ b/src/compiler/checker.ts @@ -15697,7 +15697,11 @@ export function createTypeChecker(host: TypeCheckerHost): TypeChecker { else if (prop.valueDeclaration && prop.valueDeclaration !== firstValueDeclaration) { hasNonUniformValueDeclaration = true; } - declarations = addRange(declarations, prop.declarations); + if (prop.declarations) { + for (const d of prop.declarations) { + declarations = appendIfUnique(declarations, d); + } + } const type = getTypeOfSymbol(prop); if (!firstType) { firstType = type; diff --git a/tests/baselines/reference/arrayDestructuringInSwitch1.symbols b/tests/baselines/reference/arrayDestructuringInSwitch1.symbols index 6771f8ba52cfa..77caed2cd8f2c 100644 --- a/tests/baselines/reference/arrayDestructuringInSwitch1.symbols +++ b/tests/baselines/reference/arrayDestructuringInSwitch1.symbols @@ -31,9 +31,9 @@ export function evaluate(expression: Expression): boolean { case 'and': { return operands.every((child) => evaluate(child)); ->operands.every : Symbol(Array.every, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --)) +>operands.every : Symbol(Array.every, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --)) >operands : Symbol(operands, Decl(arrayDestructuringInSwitch1.ts, 5, 20)) ->every : Symbol(Array.every, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --)) +>every : Symbol(Array.every, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --)) >child : Symbol(child, Decl(arrayDestructuringInSwitch1.ts, 8, 31)) >evaluate : Symbol(evaluate, Decl(arrayDestructuringInSwitch1.ts, 1, 84)) >child : Symbol(child, Decl(arrayDestructuringInSwitch1.ts, 8, 31)) diff --git a/tests/baselines/reference/arraySlice.symbols b/tests/baselines/reference/arraySlice.symbols index 0d96026a75ad0..69eb1c8e5a8c5 100644 --- a/tests/baselines/reference/arraySlice.symbols +++ b/tests/baselines/reference/arraySlice.symbols @@ -5,7 +5,7 @@ var arr: string[] | number[]; >arr : Symbol(arr, Decl(arraySlice.ts, 0, 3)) arr.splice(1, 1); ->arr.splice : Symbol(Array.splice, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --)) +>arr.splice : Symbol(Array.splice, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --)) >arr : Symbol(arr, Decl(arraySlice.ts, 0, 3)) ->splice : Symbol(Array.splice, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --)) +>splice : Symbol(Array.splice, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --)) diff --git a/tests/baselines/reference/bestChoiceType.symbols b/tests/baselines/reference/bestChoiceType.symbols index e17d85433a00d..10588fa7b4bfa 100644 --- a/tests/baselines/reference/bestChoiceType.symbols +++ b/tests/baselines/reference/bestChoiceType.symbols @@ -4,10 +4,10 @@ // Repro from #10041 (''.match(/ /) || []).map(s => s.toLowerCase()); ->(''.match(/ /) || []).map : Symbol(Array.map, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --)) +>(''.match(/ /) || []).map : Symbol(Array.map, Decl(lib.es5.d.ts, --, --)) >''.match : Symbol(String.match, Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --)) >match : Symbol(String.match, Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --)) ->map : Symbol(Array.map, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --)) +>map : Symbol(Array.map, Decl(lib.es5.d.ts, --, --)) >s : Symbol(s, Decl(bestChoiceType.ts, 2, 26)) >s.toLowerCase : Symbol(String.toLowerCase, Decl(lib.es5.d.ts, --, --)) >s : Symbol(s, Decl(bestChoiceType.ts, 2, 26)) @@ -29,9 +29,9 @@ function f1() { let z = y.map(s => s.toLowerCase()); >z : Symbol(z, Decl(bestChoiceType.ts, 9, 7)) ->y.map : Symbol(Array.map, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --)) +>y.map : Symbol(Array.map, Decl(lib.es5.d.ts, --, --)) >y : Symbol(y, Decl(bestChoiceType.ts, 8, 7)) ->map : Symbol(Array.map, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --)) +>map : Symbol(Array.map, Decl(lib.es5.d.ts, --, --)) >s : Symbol(s, Decl(bestChoiceType.ts, 9, 18)) >s.toLowerCase : Symbol(String.toLowerCase, Decl(lib.es5.d.ts, --, --)) >s : Symbol(s, Decl(bestChoiceType.ts, 9, 18)) @@ -53,9 +53,9 @@ function f2() { let z = y.map(s => s.toLowerCase()); >z : Symbol(z, Decl(bestChoiceType.ts, 15, 7)) ->y.map : Symbol(Array.map, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --)) +>y.map : Symbol(Array.map, Decl(lib.es5.d.ts, --, --)) >y : Symbol(y, Decl(bestChoiceType.ts, 14, 7)) ->map : Symbol(Array.map, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --)) +>map : Symbol(Array.map, Decl(lib.es5.d.ts, --, --)) >s : Symbol(s, Decl(bestChoiceType.ts, 15, 18)) >s.toLowerCase : Symbol(String.toLowerCase, Decl(lib.es5.d.ts, --, --)) >s : Symbol(s, Decl(bestChoiceType.ts, 15, 18)) diff --git a/tests/baselines/reference/bivariantInferences.symbols b/tests/baselines/reference/bivariantInferences.symbols index 543a0dd3bb807..c519f2fb384fd 100644 --- a/tests/baselines/reference/bivariantInferences.symbols +++ b/tests/baselines/reference/bivariantInferences.symbols @@ -26,8 +26,8 @@ declare const b: (string | number)[] | null[] | undefined[] | {}[]; let x = a.equalsShallow(b); >x : Symbol(x, Decl(bivariantInferences.ts, 9, 3)) ->a.equalsShallow : Symbol(Array.equalsShallow, Decl(bivariantInferences.ts, 2, 20), Decl(bivariantInferences.ts, 2, 20), Decl(bivariantInferences.ts, 2, 20), Decl(bivariantInferences.ts, 2, 20)) +>a.equalsShallow : Symbol(Array.equalsShallow, Decl(bivariantInferences.ts, 2, 20)) >a : Symbol(a, Decl(bivariantInferences.ts, 6, 13)) ->equalsShallow : Symbol(Array.equalsShallow, Decl(bivariantInferences.ts, 2, 20), Decl(bivariantInferences.ts, 2, 20), Decl(bivariantInferences.ts, 2, 20), Decl(bivariantInferences.ts, 2, 20)) +>equalsShallow : Symbol(Array.equalsShallow, Decl(bivariantInferences.ts, 2, 20)) >b : Symbol(b, Decl(bivariantInferences.ts, 7, 13)) diff --git a/tests/baselines/reference/callsOnComplexSignatures.symbols b/tests/baselines/reference/callsOnComplexSignatures.symbols index 8a4e3f4488e6a..427f0249a5cfa 100644 --- a/tests/baselines/reference/callsOnComplexSignatures.symbols +++ b/tests/baselines/reference/callsOnComplexSignatures.symbols @@ -96,9 +96,9 @@ function test3(items: string[] | number[]) { >items : Symbol(items, Decl(callsOnComplexSignatures.tsx, 36, 15)) items.forEach(item => console.log(item)); ->items.forEach : Symbol(Array.forEach, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --)) +>items.forEach : Symbol(Array.forEach, Decl(lib.es5.d.ts, --, --)) >items : Symbol(items, Decl(callsOnComplexSignatures.tsx, 36, 15)) ->forEach : Symbol(Array.forEach, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --)) +>forEach : Symbol(Array.forEach, Decl(lib.es5.d.ts, --, --)) >item : Symbol(item, Decl(callsOnComplexSignatures.tsx, 37, 18)) >console.log : Symbol(Console.log, Decl(lib.dom.d.ts, --, --)) >console : Symbol(console, Decl(lib.dom.d.ts, --, --)) diff --git a/tests/baselines/reference/contextualOverloadListFromArrayUnion.symbols b/tests/baselines/reference/contextualOverloadListFromArrayUnion.symbols index d1b2a8575cab0..87b334c93b2e5 100644 --- a/tests/baselines/reference/contextualOverloadListFromArrayUnion.symbols +++ b/tests/baselines/reference/contextualOverloadListFromArrayUnion.symbols @@ -6,9 +6,9 @@ declare const y: never[] | string[]; export const yThen = y.map(item => item.length); >yThen : Symbol(yThen, Decl(one.ts, 1, 12)) ->y.map : Symbol(Array.map, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --)) +>y.map : Symbol(Array.map, Decl(lib.es5.d.ts, --, --)) >y : Symbol(y, Decl(one.ts, 0, 13)) ->map : Symbol(Array.map, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --)) +>map : Symbol(Array.map, Decl(lib.es5.d.ts, --, --)) >item : Symbol(item, Decl(one.ts, 1, 27)) >item.length : Symbol(String.length, Decl(lib.es5.d.ts, --, --)) >item : Symbol(item, Decl(one.ts, 1, 27)) @@ -20,9 +20,9 @@ declare const y: number[][] | string[]; export const yThen = y.map(item => item.length); >yThen : Symbol(yThen, Decl(two.ts, 1, 12)) ->y.map : Symbol(Array.map, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --)) +>y.map : Symbol(Array.map, Decl(lib.es5.d.ts, --, --)) >y : Symbol(y, Decl(two.ts, 0, 13)) ->map : Symbol(Array.map, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --)) +>map : Symbol(Array.map, Decl(lib.es5.d.ts, --, --)) >item : Symbol(item, Decl(two.ts, 1, 27)) >item.length : Symbol(length, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --)) >item : Symbol(item, Decl(two.ts, 1, 27)) diff --git a/tests/baselines/reference/controlFlowArrayErrors.symbols b/tests/baselines/reference/controlFlowArrayErrors.symbols index f0e0286e65168..a313226537970 100644 --- a/tests/baselines/reference/controlFlowArrayErrors.symbols +++ b/tests/baselines/reference/controlFlowArrayErrors.symbols @@ -123,9 +123,9 @@ function f6() { >x : Symbol(x, Decl(controlFlowArrayErrors.ts, 37, 7)) x.push(99); // Error ->x.push : Symbol(Array.push, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --)) +>x.push : Symbol(Array.push, Decl(lib.es5.d.ts, --, --)) >x : Symbol(x, Decl(controlFlowArrayErrors.ts, 37, 7)) ->push : Symbol(Array.push, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --)) +>push : Symbol(Array.push, Decl(lib.es5.d.ts, --, --)) } function f7() { diff --git a/tests/baselines/reference/crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.errors.txt b/tests/baselines/reference/crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.errors.txt new file mode 100644 index 0000000000000..18691f2f9c6a1 --- /dev/null +++ b/tests/baselines/reference/crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.errors.txt @@ -0,0 +1,437 @@ +crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts(424,5): error TS2355: A function whose declared type is neither 'undefined', 'void', nor 'any' must return a value. + + +==== crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts (1 errors) ==== + type JsonPrimitive = boolean | null | number | string; + type JsonArray = JsonValue[]; + type JsonValue = JsonArray | JsonObject | JsonPrimitive; + interface JsonObject { + [key: string]: JsonValue | undefined; + } + type IndexKey = string & { + __brand: "indexKey"; + }; + + interface TLBaseAsset + extends BaseRecord<"asset", TLAssetId> { + type: Type; + props: Props; + meta: JsonObject; + } + type TLAssetId = RecordId>; + + interface VecModel { + x: number; + y: number; + z?: number; + } + + interface TLShapeCrop { + topLeft: VecModel; + bottomRight: VecModel; + isCircle?: boolean; + } + + type TLRichText = { + attrs?: any; + content: unknown[]; + type: string; + }; + + type TLDefaultColorStyle = + | "black" + | "blue" + | "green" + | "grey" + | "light-blue" + | "light-green" + | "light-red" + | "light-violet" + | "orange" + | "red" + | "violet" + | "white" + | "yellow"; + type TLDefaultFillStyle = + | "fill" + | "lined-fill" + | "none" + | "pattern" + | "semi" + | "solid"; + type TLDefaultDashStyle = "solid" | "draw" | "dashed" | "dotted"; + type TLDefaultSizeStyle = "l" | "m" | "s" | "xl"; + type TLLineShapeSplineStyle = "line" | "cubic"; + type TLDefaultFontStyle = "draw" | "mono" | "sans" | "serif"; + type TLDefaultHorizontalAlignStyle = + | "end-legacy" + | "end" + | "middle-legacy" + | "middle" + | "start-legacy" + | "start"; + type TLDefaultVerticalAlignStyle = "end" | "middle" | "start"; + type TLDefaultTextAlignStyle = "end" | "middle" | "start"; + type TLArrowShapeKind = "arc" | "elbow"; + type TLArrowShapeArrowheadStyle = + | "arrow" + | "bar" + | "diamond" + | "dot" + | "inverted" + | "none" + | "pipe" + | "square" + | "triangle"; + type TLGeoShapeGeoStyle = + | "arrow-down" + | "arrow-left" + | "arrow-right" + | "arrow-up" + | "check-box" + | "cloud" + | "diamond" + | "ellipse" + | "heart" + | "hexagon" + | "octagon" + | "oval" + | "pentagon" + | "rectangle" + | "rhombus" + | "rhombus-2" + | "star" + | "trapezoid" + | "triangle" + | "x-box"; + type TLOpacityType = number; + type TLPageId = RecordId; + type TLParentId = TLPageId | TLShapeId; + interface TLPage extends BaseRecord<"page", TLPageId> { + name: string; + index: IndexKey; + meta: JsonObject; + } + + interface TLLineShapePoint { + id: string; + index: IndexKey; + x: number; + y: number; + } + + interface TLGlobalShapePropsMap {} + + interface TLBaseShape { + readonly id: TLShapeId; + readonly typeName: "shape"; + type: Type; + x: number; + y: number; + rotation: number; + index: IndexKey; + parentId: TLParentId; + isLocked: boolean; + opacity: TLOpacityType; + props: Props; + meta: JsonObject; + } + + interface TLArrowShapeProps { + kind: TLArrowShapeKind; + labelColor: TLDefaultColorStyle; + color: TLDefaultColorStyle; + fill: TLDefaultFillStyle; + dash: TLDefaultDashStyle; + size: TLDefaultSizeStyle; + arrowheadStart: TLArrowShapeArrowheadStyle; + arrowheadEnd: TLArrowShapeArrowheadStyle; + font: TLDefaultFontStyle; + start: VecModel; + end: VecModel; + bend: number; + richText: TLRichText; + labelPosition: number; + scale: number; + elbowMidPoint: number; + } + type TLArrowShape = TLBaseShape<"arrow", TLArrowShapeProps>; + + interface TLBookmarkShapeProps { + w: number; + h: number; + assetId: TLAssetId | null; + url: string; + } + + type TLBookmarkShape = TLBaseShape<"bookmark", TLBookmarkShapeProps>; + + export interface TLDrawShapeProps { + color: TLDefaultColorStyle; + fill: TLDefaultFillStyle; + dash: TLDefaultDashStyle; + size: TLDefaultSizeStyle; + segments: TLDrawShapeSegment[]; + isComplete: boolean; + isClosed: boolean; + isPen: boolean; + scale: number; + scaleX: number; + scaleY: number; + } + + type TLDrawShape = TLBaseShape<"draw", TLDrawShapeProps>; + + interface TLEmbedShapeProps { + w: number; + h: number; + url: string; + } + + type TLEmbedShape = TLBaseShape<"embed", TLEmbedShapeProps>; + + interface TLFrameShapeProps { + w: number; + h: number; + name: string; + color: TLDefaultColorStyle; + } + + type TLFrameShape = TLBaseShape<"frame", TLFrameShapeProps>; + + interface TLGeoShapeProps { + geo: TLGeoShapeGeoStyle; + dash: TLDefaultDashStyle; + url: string; + w: number; + h: number; + growY: number; + scale: number; + labelColor: TLDefaultColorStyle; + color: TLDefaultColorStyle; + fill: TLDefaultFillStyle; + size: TLDefaultSizeStyle; + font: TLDefaultFontStyle; + align: TLDefaultHorizontalAlignStyle; + verticalAlign: TLDefaultVerticalAlignStyle; + richText: TLRichText; + } + + type TLGeoShape = TLBaseShape<"geo", TLGeoShapeProps>; + + interface TLGroupShapeProps {} + + type TLGroupShape = TLBaseShape<"group", TLGroupShapeProps>; + + interface TLDrawShapeSegment { + type: "free" | "straight"; + path: string; + } + + interface TLHighlightShapeProps { + color: TLDefaultColorStyle; + size: TLDefaultSizeStyle; + segments: TLDrawShapeSegment[]; + isComplete: boolean; + isPen: boolean; + scale: number; + scaleX: number; + scaleY: number; + } + + type TLHighlightShape = TLBaseShape<"highlight", TLHighlightShapeProps>; + + interface TLImageShapeProps { + w: number; + + h: number; + + playing: boolean; + + url: string; + + assetId: null | TLAssetId; + + crop: null | TLShapeCrop; + + flipX: boolean; + + flipY: boolean; + + altText: string; + } + + type TLImageShape = TLBaseShape<"image", TLImageShapeProps>; + + interface TLLineShapeProps { + color: TLDefaultColorStyle; + dash: TLDefaultDashStyle; + size: TLDefaultSizeStyle; + spline: TLLineShapeSplineStyle; + points: Record; + scale: number; + } + + type TLLineShape = TLBaseShape<"line", TLLineShapeProps>; + + interface TLNoteShapeProps { + color: TLDefaultColorStyle; + labelColor: TLDefaultColorStyle; + size: TLDefaultSizeStyle; + font: TLDefaultFontStyle; + fontSizeAdjustment: number; + align: TLDefaultHorizontalAlignStyle; + verticalAlign: TLDefaultVerticalAlignStyle; + growY: number; + url: string; + richText: TLRichText; + scale: number; + } + + type TLNoteShape = TLBaseShape<"note", TLNoteShapeProps>; + + interface TLTextShapeProps { + color: TLDefaultColorStyle; + size: TLDefaultSizeStyle; + font: TLDefaultFontStyle; + textAlign: TLDefaultTextAlignStyle; + w: number; + richText: TLRichText; + scale: number; + autoSize: boolean; + } + + type TLTextShape = TLBaseShape<"text", TLTextShapeProps>; + + interface TLVideoShapeProps { + w: number; + h: number; + time: number; + playing: boolean; + autoplay: boolean; + url: string; + assetId: null | TLAssetId; + altText: string; + } + + type TLVideoShape = TLBaseShape<"video", TLVideoShapeProps>; + + type TLDefaultShape = + | TLArrowShape + | TLBookmarkShape + | TLDrawShape + | TLEmbedShape + | TLFrameShape + | TLGeoShape + | TLGroupShape + | TLHighlightShape + | TLImageShape + | TLLineShape + | TLNoteShape + | TLTextShape + | TLVideoShape; + + type TLIndexedShapes = { + [K in + | keyof TLGlobalShapePropsMap + | TLDefaultShape["type"] as K extends TLDefaultShape["type"] + ? K extends "group" + ? K + : K extends keyof TLGlobalShapePropsMap + ? TLGlobalShapePropsMap[K] extends null | undefined + ? never + : K + : K + : K]: K extends "group" + ? Extract< + TLDefaultShape, + { + type: K; + } + > + : K extends TLDefaultShape["type"] + ? K extends keyof TLGlobalShapePropsMap + ? TLBaseShape + : Extract< + TLDefaultShape, + { + type: K; + } + > + : TLBaseShape; + }; + + type TLShape = + TLIndexedShapes[K]; + + interface BaseRecord< + TypeName extends string, + Id extends RecordId, + > { + readonly id: Id; + readonly typeName: TypeName; + } + + type UnknownRecord = BaseRecord>; + + type RecordId = string & { + __type__: R; + }; + + type TLShapeId = RecordId; + + type TLShapePartial = T extends T + ? { + id: TLShapeId; + meta?: Partial; + props?: Partial; + type: T["type"]; + } & Partial> + : never; + + interface TLGlobalShapePropsMap { + html: { + w: number; + h: number; + }; + container_section: { + w: number; + h: number; + }; + container: { + w: number; + h: number; + }; + } + + type Dimensions = { + w: number; + h: number; + }; + + export type ShapeWithDimensions = T & { + props: T["props"] & Dimensions; + }; + + export type ShapePartialWithDimensions = TLShapePartial< + ShapeWithDimensions + > & { + props: TLShapePartial>["props"] & Dimensions; + }; + + export function createShapeAtNearestAdjacentEmptyPosition< + N extends ShapeWithDimensions, + >({ + newShape: newShapePartial, + }: { + newShape: ShapePartialWithDimensions; + }): { + ~ + newShape: N; + ~~~~~~~~~~~~~~ + } { + ~ +!!! error TS2355: A function whose declared type is neither 'undefined', 'void', nor 'any' must return a value. + newShapePartial.props?.w; + } + \ No newline at end of file diff --git a/tests/baselines/reference/crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.symbols b/tests/baselines/reference/crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.symbols new file mode 100644 index 0000000000000..e07bba4aa6132 --- /dev/null +++ b/tests/baselines/reference/crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.symbols @@ -0,0 +1,1100 @@ +//// [tests/cases/compiler/crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts] //// + +=== crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts === +type JsonPrimitive = boolean | null | number | string; +>JsonPrimitive : Symbol(JsonPrimitive, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 0, 0)) + +type JsonArray = JsonValue[]; +>JsonArray : Symbol(JsonArray, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 0, 54)) +>JsonValue : Symbol(JsonValue, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 1, 29)) + +type JsonValue = JsonArray | JsonObject | JsonPrimitive; +>JsonValue : Symbol(JsonValue, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 1, 29)) +>JsonArray : Symbol(JsonArray, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 0, 54)) +>JsonObject : Symbol(JsonObject, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 2, 56)) +>JsonPrimitive : Symbol(JsonPrimitive, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 0, 0)) + +interface JsonObject { +>JsonObject : Symbol(JsonObject, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 2, 56)) + + [key: string]: JsonValue | undefined; +>key : Symbol(key, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 4, 3)) +>JsonValue : Symbol(JsonValue, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 1, 29)) +} +type IndexKey = string & { +>IndexKey : Symbol(IndexKey, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 5, 1)) + + __brand: "indexKey"; +>__brand : Symbol(__brand, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 6, 26)) + +}; + +interface TLBaseAsset +>TLBaseAsset : Symbol(TLBaseAsset, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 8, 2)) +>Type : Symbol(Type, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 10, 22)) +>Props : Symbol(Props, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 10, 42)) + + extends BaseRecord<"asset", TLAssetId> { +>BaseRecord : Symbol(BaseRecord, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 360, 21)) +>TLAssetId : Symbol(TLAssetId, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 15, 1)) + + type: Type; +>type : Symbol(TLBaseAsset.type, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 11, 42)) +>Type : Symbol(Type, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 10, 22)) + + props: Props; +>props : Symbol(TLBaseAsset.props, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 12, 13)) +>Props : Symbol(Props, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 10, 42)) + + meta: JsonObject; +>meta : Symbol(TLBaseAsset.meta, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 13, 15)) +>JsonObject : Symbol(JsonObject, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 2, 56)) +} +type TLAssetId = RecordId>; +>TLAssetId : Symbol(TLAssetId, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 15, 1)) +>RecordId : Symbol(RecordId, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 370, 65)) +>TLBaseAsset : Symbol(TLBaseAsset, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 8, 2)) + +interface VecModel { +>VecModel : Symbol(VecModel, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 16, 49)) + + x: number; +>x : Symbol(VecModel.x, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 18, 20)) + + y: number; +>y : Symbol(VecModel.y, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 19, 12)) + + z?: number; +>z : Symbol(VecModel.z, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 20, 12)) +} + +interface TLShapeCrop { +>TLShapeCrop : Symbol(TLShapeCrop, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 22, 1)) + + topLeft: VecModel; +>topLeft : Symbol(TLShapeCrop.topLeft, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 24, 23)) +>VecModel : Symbol(VecModel, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 16, 49)) + + bottomRight: VecModel; +>bottomRight : Symbol(TLShapeCrop.bottomRight, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 25, 20)) +>VecModel : Symbol(VecModel, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 16, 49)) + + isCircle?: boolean; +>isCircle : Symbol(TLShapeCrop.isCircle, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 26, 24)) +} + +type TLRichText = { +>TLRichText : Symbol(TLRichText, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 28, 1)) + + attrs?: any; +>attrs : Symbol(attrs, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 30, 19)) + + content: unknown[]; +>content : Symbol(content, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 31, 14)) + + type: string; +>type : Symbol(type, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 32, 21)) + +}; + +type TLDefaultColorStyle = +>TLDefaultColorStyle : Symbol(TLDefaultColorStyle, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 34, 2)) + + | "black" + | "blue" + | "green" + | "grey" + | "light-blue" + | "light-green" + | "light-red" + | "light-violet" + | "orange" + | "red" + | "violet" + | "white" + | "yellow"; +type TLDefaultFillStyle = +>TLDefaultFillStyle : Symbol(TLDefaultFillStyle, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 49, 13)) + + | "fill" + | "lined-fill" + | "none" + | "pattern" + | "semi" + | "solid"; +type TLDefaultDashStyle = "solid" | "draw" | "dashed" | "dotted"; +>TLDefaultDashStyle : Symbol(TLDefaultDashStyle, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 56, 12)) + +type TLDefaultSizeStyle = "l" | "m" | "s" | "xl"; +>TLDefaultSizeStyle : Symbol(TLDefaultSizeStyle, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 57, 65)) + +type TLLineShapeSplineStyle = "line" | "cubic"; +>TLLineShapeSplineStyle : Symbol(TLLineShapeSplineStyle, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 58, 49)) + +type TLDefaultFontStyle = "draw" | "mono" | "sans" | "serif"; +>TLDefaultFontStyle : Symbol(TLDefaultFontStyle, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 59, 47)) + +type TLDefaultHorizontalAlignStyle = +>TLDefaultHorizontalAlignStyle : Symbol(TLDefaultHorizontalAlignStyle, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 60, 61)) + + | "end-legacy" + | "end" + | "middle-legacy" + | "middle" + | "start-legacy" + | "start"; +type TLDefaultVerticalAlignStyle = "end" | "middle" | "start"; +>TLDefaultVerticalAlignStyle : Symbol(TLDefaultVerticalAlignStyle, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 67, 12)) + +type TLDefaultTextAlignStyle = "end" | "middle" | "start"; +>TLDefaultTextAlignStyle : Symbol(TLDefaultTextAlignStyle, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 68, 62)) + +type TLArrowShapeKind = "arc" | "elbow"; +>TLArrowShapeKind : Symbol(TLArrowShapeKind, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 69, 58)) + +type TLArrowShapeArrowheadStyle = +>TLArrowShapeArrowheadStyle : Symbol(TLArrowShapeArrowheadStyle, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 70, 40)) + + | "arrow" + | "bar" + | "diamond" + | "dot" + | "inverted" + | "none" + | "pipe" + | "square" + | "triangle"; +type TLGeoShapeGeoStyle = +>TLGeoShapeGeoStyle : Symbol(TLGeoShapeGeoStyle, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 80, 15)) + + | "arrow-down" + | "arrow-left" + | "arrow-right" + | "arrow-up" + | "check-box" + | "cloud" + | "diamond" + | "ellipse" + | "heart" + | "hexagon" + | "octagon" + | "oval" + | "pentagon" + | "rectangle" + | "rhombus" + | "rhombus-2" + | "star" + | "trapezoid" + | "triangle" + | "x-box"; +type TLOpacityType = number; +>TLOpacityType : Symbol(TLOpacityType, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 101, 12)) + +type TLPageId = RecordId; +>TLPageId : Symbol(TLPageId, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 102, 28)) +>RecordId : Symbol(RecordId, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 370, 65)) +>TLPage : Symbol(TLPage, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 104, 39)) + +type TLParentId = TLPageId | TLShapeId; +>TLParentId : Symbol(TLParentId, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 103, 33)) +>TLPageId : Symbol(TLPageId, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 102, 28)) +>TLShapeId : Symbol(TLShapeId, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 374, 2)) + +interface TLPage extends BaseRecord<"page", TLPageId> { +>TLPage : Symbol(TLPage, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 104, 39)) +>BaseRecord : Symbol(BaseRecord, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 360, 21)) +>TLPageId : Symbol(TLPageId, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 102, 28)) + + name: string; +>name : Symbol(TLPage.name, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 105, 55)) + + index: IndexKey; +>index : Symbol(TLPage.index, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 106, 15)) +>IndexKey : Symbol(IndexKey, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 5, 1)) + + meta: JsonObject; +>meta : Symbol(TLPage.meta, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 107, 18)) +>JsonObject : Symbol(JsonObject, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 2, 56)) +} + +interface TLLineShapePoint { +>TLLineShapePoint : Symbol(TLLineShapePoint, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 109, 1)) + + id: string; +>id : Symbol(TLLineShapePoint.id, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 111, 28)) + + index: IndexKey; +>index : Symbol(TLLineShapePoint.index, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 112, 13)) +>IndexKey : Symbol(IndexKey, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 5, 1)) + + x: number; +>x : Symbol(TLLineShapePoint.x, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 113, 18)) + + y: number; +>y : Symbol(TLLineShapePoint.y, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 114, 12)) +} + +interface TLGlobalShapePropsMap {} +>TLGlobalShapePropsMap : Symbol(TLGlobalShapePropsMap, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 116, 1), Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 385, 10)) + +interface TLBaseShape { +>TLBaseShape : Symbol(TLBaseShape, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 118, 34)) +>Type : Symbol(Type, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 120, 22)) +>Props : Symbol(Props, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 120, 42)) + + readonly id: TLShapeId; +>id : Symbol(TLBaseShape.id, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 120, 66)) +>TLShapeId : Symbol(TLShapeId, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 374, 2)) + + readonly typeName: "shape"; +>typeName : Symbol(TLBaseShape.typeName, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 121, 25)) + + type: Type; +>type : Symbol(TLBaseShape.type, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 122, 29)) +>Type : Symbol(Type, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 120, 22)) + + x: number; +>x : Symbol(TLBaseShape.x, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 123, 13)) + + y: number; +>y : Symbol(TLBaseShape.y, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 124, 12)) + + rotation: number; +>rotation : Symbol(TLBaseShape.rotation, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 125, 12)) + + index: IndexKey; +>index : Symbol(TLBaseShape.index, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 126, 19)) +>IndexKey : Symbol(IndexKey, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 5, 1)) + + parentId: TLParentId; +>parentId : Symbol(TLBaseShape.parentId, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 127, 18)) +>TLParentId : Symbol(TLParentId, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 103, 33)) + + isLocked: boolean; +>isLocked : Symbol(TLBaseShape.isLocked, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 128, 23)) + + opacity: TLOpacityType; +>opacity : Symbol(TLBaseShape.opacity, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 129, 20)) +>TLOpacityType : Symbol(TLOpacityType, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 101, 12)) + + props: Props; +>props : Symbol(TLBaseShape.props, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 130, 25)) +>Props : Symbol(Props, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 120, 42)) + + meta: JsonObject; +>meta : Symbol(TLBaseShape.meta, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 131, 15)) +>JsonObject : Symbol(JsonObject, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 2, 56)) +} + +interface TLArrowShapeProps { +>TLArrowShapeProps : Symbol(TLArrowShapeProps, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 133, 1)) + + kind: TLArrowShapeKind; +>kind : Symbol(TLArrowShapeProps.kind, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 135, 29)) +>TLArrowShapeKind : Symbol(TLArrowShapeKind, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 69, 58)) + + labelColor: TLDefaultColorStyle; +>labelColor : Symbol(TLArrowShapeProps.labelColor, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 136, 25)) +>TLDefaultColorStyle : Symbol(TLDefaultColorStyle, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 34, 2)) + + color: TLDefaultColorStyle; +>color : Symbol(TLArrowShapeProps.color, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 137, 34)) +>TLDefaultColorStyle : Symbol(TLDefaultColorStyle, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 34, 2)) + + fill: TLDefaultFillStyle; +>fill : Symbol(TLArrowShapeProps.fill, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 138, 29)) +>TLDefaultFillStyle : Symbol(TLDefaultFillStyle, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 49, 13)) + + dash: TLDefaultDashStyle; +>dash : Symbol(TLArrowShapeProps.dash, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 139, 27)) +>TLDefaultDashStyle : Symbol(TLDefaultDashStyle, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 56, 12)) + + size: TLDefaultSizeStyle; +>size : Symbol(TLArrowShapeProps.size, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 140, 27)) +>TLDefaultSizeStyle : Symbol(TLDefaultSizeStyle, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 57, 65)) + + arrowheadStart: TLArrowShapeArrowheadStyle; +>arrowheadStart : Symbol(TLArrowShapeProps.arrowheadStart, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 141, 27)) +>TLArrowShapeArrowheadStyle : Symbol(TLArrowShapeArrowheadStyle, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 70, 40)) + + arrowheadEnd: TLArrowShapeArrowheadStyle; +>arrowheadEnd : Symbol(TLArrowShapeProps.arrowheadEnd, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 142, 45)) +>TLArrowShapeArrowheadStyle : Symbol(TLArrowShapeArrowheadStyle, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 70, 40)) + + font: TLDefaultFontStyle; +>font : Symbol(TLArrowShapeProps.font, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 143, 43)) +>TLDefaultFontStyle : Symbol(TLDefaultFontStyle, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 59, 47)) + + start: VecModel; +>start : Symbol(TLArrowShapeProps.start, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 144, 27)) +>VecModel : Symbol(VecModel, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 16, 49)) + + end: VecModel; +>end : Symbol(TLArrowShapeProps.end, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 145, 18)) +>VecModel : Symbol(VecModel, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 16, 49)) + + bend: number; +>bend : Symbol(TLArrowShapeProps.bend, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 146, 16)) + + richText: TLRichText; +>richText : Symbol(TLArrowShapeProps.richText, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 147, 15)) +>TLRichText : Symbol(TLRichText, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 28, 1)) + + labelPosition: number; +>labelPosition : Symbol(TLArrowShapeProps.labelPosition, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 148, 23)) + + scale: number; +>scale : Symbol(TLArrowShapeProps.scale, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 149, 24)) + + elbowMidPoint: number; +>elbowMidPoint : Symbol(TLArrowShapeProps.elbowMidPoint, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 150, 16)) +} +type TLArrowShape = TLBaseShape<"arrow", TLArrowShapeProps>; +>TLArrowShape : Symbol(TLArrowShape, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 152, 1)) +>TLBaseShape : Symbol(TLBaseShape, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 118, 34)) +>TLArrowShapeProps : Symbol(TLArrowShapeProps, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 133, 1)) + +interface TLBookmarkShapeProps { +>TLBookmarkShapeProps : Symbol(TLBookmarkShapeProps, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 153, 60)) + + w: number; +>w : Symbol(TLBookmarkShapeProps.w, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 155, 32)) + + h: number; +>h : Symbol(TLBookmarkShapeProps.h, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 156, 12)) + + assetId: TLAssetId | null; +>assetId : Symbol(TLBookmarkShapeProps.assetId, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 157, 12)) +>TLAssetId : Symbol(TLAssetId, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 15, 1)) + + url: string; +>url : Symbol(TLBookmarkShapeProps.url, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 158, 28)) +} + +type TLBookmarkShape = TLBaseShape<"bookmark", TLBookmarkShapeProps>; +>TLBookmarkShape : Symbol(TLBookmarkShape, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 160, 1)) +>TLBaseShape : Symbol(TLBaseShape, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 118, 34)) +>TLBookmarkShapeProps : Symbol(TLBookmarkShapeProps, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 153, 60)) + +export interface TLDrawShapeProps { +>TLDrawShapeProps : Symbol(TLDrawShapeProps, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 162, 69)) + + color: TLDefaultColorStyle; +>color : Symbol(TLDrawShapeProps.color, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 164, 35)) +>TLDefaultColorStyle : Symbol(TLDefaultColorStyle, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 34, 2)) + + fill: TLDefaultFillStyle; +>fill : Symbol(TLDrawShapeProps.fill, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 165, 29)) +>TLDefaultFillStyle : Symbol(TLDefaultFillStyle, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 49, 13)) + + dash: TLDefaultDashStyle; +>dash : Symbol(TLDrawShapeProps.dash, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 166, 27)) +>TLDefaultDashStyle : Symbol(TLDefaultDashStyle, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 56, 12)) + + size: TLDefaultSizeStyle; +>size : Symbol(TLDrawShapeProps.size, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 167, 27)) +>TLDefaultSizeStyle : Symbol(TLDefaultSizeStyle, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 57, 65)) + + segments: TLDrawShapeSegment[]; +>segments : Symbol(TLDrawShapeProps.segments, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 168, 27)) +>TLDrawShapeSegment : Symbol(TLDrawShapeSegment, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 219, 60)) + + isComplete: boolean; +>isComplete : Symbol(TLDrawShapeProps.isComplete, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 169, 33)) + + isClosed: boolean; +>isClosed : Symbol(TLDrawShapeProps.isClosed, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 170, 22)) + + isPen: boolean; +>isPen : Symbol(TLDrawShapeProps.isPen, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 171, 20)) + + scale: number; +>scale : Symbol(TLDrawShapeProps.scale, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 172, 17)) + + scaleX: number; +>scaleX : Symbol(TLDrawShapeProps.scaleX, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 173, 16)) + + scaleY: number; +>scaleY : Symbol(TLDrawShapeProps.scaleY, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 174, 17)) +} + +type TLDrawShape = TLBaseShape<"draw", TLDrawShapeProps>; +>TLDrawShape : Symbol(TLDrawShape, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 176, 1)) +>TLBaseShape : Symbol(TLBaseShape, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 118, 34)) +>TLDrawShapeProps : Symbol(TLDrawShapeProps, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 162, 69)) + +interface TLEmbedShapeProps { +>TLEmbedShapeProps : Symbol(TLEmbedShapeProps, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 178, 57)) + + w: number; +>w : Symbol(TLEmbedShapeProps.w, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 180, 29)) + + h: number; +>h : Symbol(TLEmbedShapeProps.h, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 181, 12)) + + url: string; +>url : Symbol(TLEmbedShapeProps.url, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 182, 12)) +} + +type TLEmbedShape = TLBaseShape<"embed", TLEmbedShapeProps>; +>TLEmbedShape : Symbol(TLEmbedShape, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 184, 1)) +>TLBaseShape : Symbol(TLBaseShape, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 118, 34)) +>TLEmbedShapeProps : Symbol(TLEmbedShapeProps, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 178, 57)) + +interface TLFrameShapeProps { +>TLFrameShapeProps : Symbol(TLFrameShapeProps, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 186, 60)) + + w: number; +>w : Symbol(TLFrameShapeProps.w, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 188, 29)) + + h: number; +>h : Symbol(TLFrameShapeProps.h, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 189, 12)) + + name: string; +>name : Symbol(TLFrameShapeProps.name, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 190, 12)) + + color: TLDefaultColorStyle; +>color : Symbol(TLFrameShapeProps.color, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 191, 15)) +>TLDefaultColorStyle : Symbol(TLDefaultColorStyle, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 34, 2)) +} + +type TLFrameShape = TLBaseShape<"frame", TLFrameShapeProps>; +>TLFrameShape : Symbol(TLFrameShape, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 193, 1)) +>TLBaseShape : Symbol(TLBaseShape, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 118, 34)) +>TLFrameShapeProps : Symbol(TLFrameShapeProps, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 186, 60)) + +interface TLGeoShapeProps { +>TLGeoShapeProps : Symbol(TLGeoShapeProps, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 195, 60)) + + geo: TLGeoShapeGeoStyle; +>geo : Symbol(TLGeoShapeProps.geo, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 197, 27)) +>TLGeoShapeGeoStyle : Symbol(TLGeoShapeGeoStyle, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 80, 15)) + + dash: TLDefaultDashStyle; +>dash : Symbol(TLGeoShapeProps.dash, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 198, 26)) +>TLDefaultDashStyle : Symbol(TLDefaultDashStyle, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 56, 12)) + + url: string; +>url : Symbol(TLGeoShapeProps.url, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 199, 27)) + + w: number; +>w : Symbol(TLGeoShapeProps.w, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 200, 14)) + + h: number; +>h : Symbol(TLGeoShapeProps.h, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 201, 12)) + + growY: number; +>growY : Symbol(TLGeoShapeProps.growY, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 202, 12)) + + scale: number; +>scale : Symbol(TLGeoShapeProps.scale, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 203, 16)) + + labelColor: TLDefaultColorStyle; +>labelColor : Symbol(TLGeoShapeProps.labelColor, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 204, 16)) +>TLDefaultColorStyle : Symbol(TLDefaultColorStyle, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 34, 2)) + + color: TLDefaultColorStyle; +>color : Symbol(TLGeoShapeProps.color, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 205, 34)) +>TLDefaultColorStyle : Symbol(TLDefaultColorStyle, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 34, 2)) + + fill: TLDefaultFillStyle; +>fill : Symbol(TLGeoShapeProps.fill, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 206, 29)) +>TLDefaultFillStyle : Symbol(TLDefaultFillStyle, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 49, 13)) + + size: TLDefaultSizeStyle; +>size : Symbol(TLGeoShapeProps.size, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 207, 27)) +>TLDefaultSizeStyle : Symbol(TLDefaultSizeStyle, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 57, 65)) + + font: TLDefaultFontStyle; +>font : Symbol(TLGeoShapeProps.font, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 208, 27)) +>TLDefaultFontStyle : Symbol(TLDefaultFontStyle, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 59, 47)) + + align: TLDefaultHorizontalAlignStyle; +>align : Symbol(TLGeoShapeProps.align, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 209, 27)) +>TLDefaultHorizontalAlignStyle : Symbol(TLDefaultHorizontalAlignStyle, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 60, 61)) + + verticalAlign: TLDefaultVerticalAlignStyle; +>verticalAlign : Symbol(TLGeoShapeProps.verticalAlign, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 210, 39)) +>TLDefaultVerticalAlignStyle : Symbol(TLDefaultVerticalAlignStyle, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 67, 12)) + + richText: TLRichText; +>richText : Symbol(TLGeoShapeProps.richText, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 211, 45)) +>TLRichText : Symbol(TLRichText, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 28, 1)) +} + +type TLGeoShape = TLBaseShape<"geo", TLGeoShapeProps>; +>TLGeoShape : Symbol(TLGeoShape, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 213, 1)) +>TLBaseShape : Symbol(TLBaseShape, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 118, 34)) +>TLGeoShapeProps : Symbol(TLGeoShapeProps, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 195, 60)) + +interface TLGroupShapeProps {} +>TLGroupShapeProps : Symbol(TLGroupShapeProps, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 215, 54)) + +type TLGroupShape = TLBaseShape<"group", TLGroupShapeProps>; +>TLGroupShape : Symbol(TLGroupShape, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 217, 30)) +>TLBaseShape : Symbol(TLBaseShape, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 118, 34)) +>TLGroupShapeProps : Symbol(TLGroupShapeProps, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 215, 54)) + +interface TLDrawShapeSegment { +>TLDrawShapeSegment : Symbol(TLDrawShapeSegment, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 219, 60)) + + type: "free" | "straight"; +>type : Symbol(TLDrawShapeSegment.type, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 221, 30)) + + path: string; +>path : Symbol(TLDrawShapeSegment.path, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 222, 28)) +} + +interface TLHighlightShapeProps { +>TLHighlightShapeProps : Symbol(TLHighlightShapeProps, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 224, 1)) + + color: TLDefaultColorStyle; +>color : Symbol(TLHighlightShapeProps.color, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 226, 33)) +>TLDefaultColorStyle : Symbol(TLDefaultColorStyle, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 34, 2)) + + size: TLDefaultSizeStyle; +>size : Symbol(TLHighlightShapeProps.size, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 227, 29)) +>TLDefaultSizeStyle : Symbol(TLDefaultSizeStyle, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 57, 65)) + + segments: TLDrawShapeSegment[]; +>segments : Symbol(TLHighlightShapeProps.segments, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 228, 27)) +>TLDrawShapeSegment : Symbol(TLDrawShapeSegment, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 219, 60)) + + isComplete: boolean; +>isComplete : Symbol(TLHighlightShapeProps.isComplete, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 229, 33)) + + isPen: boolean; +>isPen : Symbol(TLHighlightShapeProps.isPen, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 230, 22)) + + scale: number; +>scale : Symbol(TLHighlightShapeProps.scale, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 231, 17)) + + scaleX: number; +>scaleX : Symbol(TLHighlightShapeProps.scaleX, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 232, 16)) + + scaleY: number; +>scaleY : Symbol(TLHighlightShapeProps.scaleY, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 233, 17)) +} + +type TLHighlightShape = TLBaseShape<"highlight", TLHighlightShapeProps>; +>TLHighlightShape : Symbol(TLHighlightShape, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 235, 1)) +>TLBaseShape : Symbol(TLBaseShape, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 118, 34)) +>TLHighlightShapeProps : Symbol(TLHighlightShapeProps, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 224, 1)) + +interface TLImageShapeProps { +>TLImageShapeProps : Symbol(TLImageShapeProps, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 237, 72)) + + w: number; +>w : Symbol(TLImageShapeProps.w, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 239, 29)) + + h: number; +>h : Symbol(TLImageShapeProps.h, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 240, 12)) + + playing: boolean; +>playing : Symbol(TLImageShapeProps.playing, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 242, 12)) + + url: string; +>url : Symbol(TLImageShapeProps.url, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 244, 19)) + + assetId: null | TLAssetId; +>assetId : Symbol(TLImageShapeProps.assetId, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 246, 14)) +>TLAssetId : Symbol(TLAssetId, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 15, 1)) + + crop: null | TLShapeCrop; +>crop : Symbol(TLImageShapeProps.crop, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 248, 28)) +>TLShapeCrop : Symbol(TLShapeCrop, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 22, 1)) + + flipX: boolean; +>flipX : Symbol(TLImageShapeProps.flipX, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 250, 27)) + + flipY: boolean; +>flipY : Symbol(TLImageShapeProps.flipY, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 252, 17)) + + altText: string; +>altText : Symbol(TLImageShapeProps.altText, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 254, 17)) +} + +type TLImageShape = TLBaseShape<"image", TLImageShapeProps>; +>TLImageShape : Symbol(TLImageShape, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 257, 1)) +>TLBaseShape : Symbol(TLBaseShape, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 118, 34)) +>TLImageShapeProps : Symbol(TLImageShapeProps, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 237, 72)) + +interface TLLineShapeProps { +>TLLineShapeProps : Symbol(TLLineShapeProps, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 259, 60)) + + color: TLDefaultColorStyle; +>color : Symbol(TLLineShapeProps.color, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 261, 28)) +>TLDefaultColorStyle : Symbol(TLDefaultColorStyle, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 34, 2)) + + dash: TLDefaultDashStyle; +>dash : Symbol(TLLineShapeProps.dash, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 262, 29)) +>TLDefaultDashStyle : Symbol(TLDefaultDashStyle, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 56, 12)) + + size: TLDefaultSizeStyle; +>size : Symbol(TLLineShapeProps.size, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 263, 27)) +>TLDefaultSizeStyle : Symbol(TLDefaultSizeStyle, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 57, 65)) + + spline: TLLineShapeSplineStyle; +>spline : Symbol(TLLineShapeProps.spline, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 264, 27)) +>TLLineShapeSplineStyle : Symbol(TLLineShapeSplineStyle, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 58, 49)) + + points: Record; +>points : Symbol(TLLineShapeProps.points, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 265, 33)) +>Record : Symbol(Record, Decl(lib.es5.d.ts, --, --)) +>TLLineShapePoint : Symbol(TLLineShapePoint, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 109, 1)) + + scale: number; +>scale : Symbol(TLLineShapeProps.scale, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 266, 43)) +} + +type TLLineShape = TLBaseShape<"line", TLLineShapeProps>; +>TLLineShape : Symbol(TLLineShape, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 268, 1)) +>TLBaseShape : Symbol(TLBaseShape, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 118, 34)) +>TLLineShapeProps : Symbol(TLLineShapeProps, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 259, 60)) + +interface TLNoteShapeProps { +>TLNoteShapeProps : Symbol(TLNoteShapeProps, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 270, 57)) + + color: TLDefaultColorStyle; +>color : Symbol(TLNoteShapeProps.color, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 272, 28)) +>TLDefaultColorStyle : Symbol(TLDefaultColorStyle, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 34, 2)) + + labelColor: TLDefaultColorStyle; +>labelColor : Symbol(TLNoteShapeProps.labelColor, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 273, 29)) +>TLDefaultColorStyle : Symbol(TLDefaultColorStyle, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 34, 2)) + + size: TLDefaultSizeStyle; +>size : Symbol(TLNoteShapeProps.size, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 274, 34)) +>TLDefaultSizeStyle : Symbol(TLDefaultSizeStyle, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 57, 65)) + + font: TLDefaultFontStyle; +>font : Symbol(TLNoteShapeProps.font, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 275, 27)) +>TLDefaultFontStyle : Symbol(TLDefaultFontStyle, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 59, 47)) + + fontSizeAdjustment: number; +>fontSizeAdjustment : Symbol(TLNoteShapeProps.fontSizeAdjustment, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 276, 27)) + + align: TLDefaultHorizontalAlignStyle; +>align : Symbol(TLNoteShapeProps.align, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 277, 29)) +>TLDefaultHorizontalAlignStyle : Symbol(TLDefaultHorizontalAlignStyle, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 60, 61)) + + verticalAlign: TLDefaultVerticalAlignStyle; +>verticalAlign : Symbol(TLNoteShapeProps.verticalAlign, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 278, 39)) +>TLDefaultVerticalAlignStyle : Symbol(TLDefaultVerticalAlignStyle, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 67, 12)) + + growY: number; +>growY : Symbol(TLNoteShapeProps.growY, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 279, 45)) + + url: string; +>url : Symbol(TLNoteShapeProps.url, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 280, 16)) + + richText: TLRichText; +>richText : Symbol(TLNoteShapeProps.richText, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 281, 14)) +>TLRichText : Symbol(TLRichText, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 28, 1)) + + scale: number; +>scale : Symbol(TLNoteShapeProps.scale, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 282, 23)) +} + +type TLNoteShape = TLBaseShape<"note", TLNoteShapeProps>; +>TLNoteShape : Symbol(TLNoteShape, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 284, 1)) +>TLBaseShape : Symbol(TLBaseShape, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 118, 34)) +>TLNoteShapeProps : Symbol(TLNoteShapeProps, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 270, 57)) + +interface TLTextShapeProps { +>TLTextShapeProps : Symbol(TLTextShapeProps, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 286, 57)) + + color: TLDefaultColorStyle; +>color : Symbol(TLTextShapeProps.color, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 288, 28)) +>TLDefaultColorStyle : Symbol(TLDefaultColorStyle, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 34, 2)) + + size: TLDefaultSizeStyle; +>size : Symbol(TLTextShapeProps.size, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 289, 29)) +>TLDefaultSizeStyle : Symbol(TLDefaultSizeStyle, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 57, 65)) + + font: TLDefaultFontStyle; +>font : Symbol(TLTextShapeProps.font, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 290, 27)) +>TLDefaultFontStyle : Symbol(TLDefaultFontStyle, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 59, 47)) + + textAlign: TLDefaultTextAlignStyle; +>textAlign : Symbol(TLTextShapeProps.textAlign, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 291, 27)) +>TLDefaultTextAlignStyle : Symbol(TLDefaultTextAlignStyle, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 68, 62)) + + w: number; +>w : Symbol(TLTextShapeProps.w, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 292, 37)) + + richText: TLRichText; +>richText : Symbol(TLTextShapeProps.richText, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 293, 12)) +>TLRichText : Symbol(TLRichText, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 28, 1)) + + scale: number; +>scale : Symbol(TLTextShapeProps.scale, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 294, 23)) + + autoSize: boolean; +>autoSize : Symbol(TLTextShapeProps.autoSize, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 295, 16)) +} + +type TLTextShape = TLBaseShape<"text", TLTextShapeProps>; +>TLTextShape : Symbol(TLTextShape, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 297, 1)) +>TLBaseShape : Symbol(TLBaseShape, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 118, 34)) +>TLTextShapeProps : Symbol(TLTextShapeProps, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 286, 57)) + +interface TLVideoShapeProps { +>TLVideoShapeProps : Symbol(TLVideoShapeProps, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 299, 57)) + + w: number; +>w : Symbol(TLVideoShapeProps.w, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 301, 29)) + + h: number; +>h : Symbol(TLVideoShapeProps.h, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 302, 12)) + + time: number; +>time : Symbol(TLVideoShapeProps.time, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 303, 12)) + + playing: boolean; +>playing : Symbol(TLVideoShapeProps.playing, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 304, 15)) + + autoplay: boolean; +>autoplay : Symbol(TLVideoShapeProps.autoplay, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 305, 19)) + + url: string; +>url : Symbol(TLVideoShapeProps.url, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 306, 20)) + + assetId: null | TLAssetId; +>assetId : Symbol(TLVideoShapeProps.assetId, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 307, 14)) +>TLAssetId : Symbol(TLAssetId, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 15, 1)) + + altText: string; +>altText : Symbol(TLVideoShapeProps.altText, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 308, 28)) +} + +type TLVideoShape = TLBaseShape<"video", TLVideoShapeProps>; +>TLVideoShape : Symbol(TLVideoShape, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 310, 1)) +>TLBaseShape : Symbol(TLBaseShape, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 118, 34)) +>TLVideoShapeProps : Symbol(TLVideoShapeProps, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 299, 57)) + +type TLDefaultShape = +>TLDefaultShape : Symbol(TLDefaultShape, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 312, 60)) + + | TLArrowShape +>TLArrowShape : Symbol(TLArrowShape, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 152, 1)) + + | TLBookmarkShape +>TLBookmarkShape : Symbol(TLBookmarkShape, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 160, 1)) + + | TLDrawShape +>TLDrawShape : Symbol(TLDrawShape, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 176, 1)) + + | TLEmbedShape +>TLEmbedShape : Symbol(TLEmbedShape, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 184, 1)) + + | TLFrameShape +>TLFrameShape : Symbol(TLFrameShape, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 193, 1)) + + | TLGeoShape +>TLGeoShape : Symbol(TLGeoShape, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 213, 1)) + + | TLGroupShape +>TLGroupShape : Symbol(TLGroupShape, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 217, 30)) + + | TLHighlightShape +>TLHighlightShape : Symbol(TLHighlightShape, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 235, 1)) + + | TLImageShape +>TLImageShape : Symbol(TLImageShape, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 257, 1)) + + | TLLineShape +>TLLineShape : Symbol(TLLineShape, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 268, 1)) + + | TLNoteShape +>TLNoteShape : Symbol(TLNoteShape, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 284, 1)) + + | TLTextShape +>TLTextShape : Symbol(TLTextShape, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 297, 1)) + + | TLVideoShape; +>TLVideoShape : Symbol(TLVideoShape, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 310, 1)) + +type TLIndexedShapes = { +>TLIndexedShapes : Symbol(TLIndexedShapes, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 327, 17)) + + [K in +>K : Symbol(K, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 330, 3)) + + | keyof TLGlobalShapePropsMap +>TLGlobalShapePropsMap : Symbol(TLGlobalShapePropsMap, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 116, 1), Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 385, 10)) + + | TLDefaultShape["type"] as K extends TLDefaultShape["type"] +>TLDefaultShape : Symbol(TLDefaultShape, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 312, 60)) +>K : Symbol(K, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 330, 3)) +>TLDefaultShape : Symbol(TLDefaultShape, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 312, 60)) + + ? K extends "group" +>K : Symbol(K, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 330, 3)) + + ? K +>K : Symbol(K, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 330, 3)) + + : K extends keyof TLGlobalShapePropsMap +>K : Symbol(K, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 330, 3)) +>TLGlobalShapePropsMap : Symbol(TLGlobalShapePropsMap, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 116, 1), Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 385, 10)) + + ? TLGlobalShapePropsMap[K] extends null | undefined +>TLGlobalShapePropsMap : Symbol(TLGlobalShapePropsMap, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 116, 1), Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 385, 10)) +>K : Symbol(K, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 330, 3)) + + ? never + : K +>K : Symbol(K, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 330, 3)) + + : K +>K : Symbol(K, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 330, 3)) + + : K]: K extends "group" +>K : Symbol(K, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 330, 3)) +>K : Symbol(K, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 330, 3)) + + ? Extract< +>Extract : Symbol(Extract, Decl(lib.es5.d.ts, --, --)) + + TLDefaultShape, +>TLDefaultShape : Symbol(TLDefaultShape, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 312, 60)) + { + type: K; +>type : Symbol(type, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 343, 9)) +>K : Symbol(K, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 330, 3)) + } + > + : K extends TLDefaultShape["type"] +>K : Symbol(K, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 330, 3)) +>TLDefaultShape : Symbol(TLDefaultShape, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 312, 60)) + + ? K extends keyof TLGlobalShapePropsMap +>K : Symbol(K, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 330, 3)) +>TLGlobalShapePropsMap : Symbol(TLGlobalShapePropsMap, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 116, 1), Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 385, 10)) + + ? TLBaseShape +>TLBaseShape : Symbol(TLBaseShape, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 118, 34)) +>K : Symbol(K, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 330, 3)) +>TLGlobalShapePropsMap : Symbol(TLGlobalShapePropsMap, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 116, 1), Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 385, 10)) +>K : Symbol(K, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 330, 3)) + + : Extract< +>Extract : Symbol(Extract, Decl(lib.es5.d.ts, --, --)) + + TLDefaultShape, +>TLDefaultShape : Symbol(TLDefaultShape, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 312, 60)) + { + type: K; +>type : Symbol(type, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 352, 11)) +>K : Symbol(K, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 330, 3)) + } + > + : TLBaseShape; +>TLBaseShape : Symbol(TLBaseShape, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 118, 34)) +>K : Symbol(K, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 330, 3)) +>TLGlobalShapePropsMap : Symbol(TLGlobalShapePropsMap, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 116, 1), Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 385, 10)) +>K : Symbol(K, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 330, 3)) +>TLGlobalShapePropsMap : Symbol(TLGlobalShapePropsMap, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 116, 1), Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 385, 10)) + +}; + +type TLShape = +>TLShape : Symbol(TLShape, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 357, 2)) +>K : Symbol(K, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 359, 13)) +>TLIndexedShapes : Symbol(TLIndexedShapes, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 327, 17)) +>TLIndexedShapes : Symbol(TLIndexedShapes, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 327, 17)) + + TLIndexedShapes[K]; +>TLIndexedShapes : Symbol(TLIndexedShapes, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 327, 17)) +>K : Symbol(K, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 359, 13)) + +interface BaseRecord< +>BaseRecord : Symbol(BaseRecord, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 360, 21)) + + TypeName extends string, +>TypeName : Symbol(TypeName, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 362, 21)) + + Id extends RecordId, +>Id : Symbol(Id, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 363, 26)) +>RecordId : Symbol(RecordId, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 370, 65)) +>UnknownRecord : Symbol(UnknownRecord, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 368, 1)) + +> { + readonly id: Id; +>id : Symbol(BaseRecord.id, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 365, 3)) +>Id : Symbol(Id, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 363, 26)) + + readonly typeName: TypeName; +>typeName : Symbol(BaseRecord.typeName, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 366, 18)) +>TypeName : Symbol(TypeName, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 362, 21)) +} + +type UnknownRecord = BaseRecord>; +>UnknownRecord : Symbol(UnknownRecord, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 368, 1)) +>BaseRecord : Symbol(BaseRecord, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 360, 21)) +>RecordId : Symbol(RecordId, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 370, 65)) +>UnknownRecord : Symbol(UnknownRecord, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 368, 1)) + +type RecordId = string & { +>RecordId : Symbol(RecordId, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 370, 65)) +>R : Symbol(R, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 372, 14)) +>UnknownRecord : Symbol(UnknownRecord, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 368, 1)) + + __type__: R; +>__type__ : Symbol(__type__, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 372, 51)) +>R : Symbol(R, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 372, 14)) + +}; + +type TLShapeId = RecordId; +>TLShapeId : Symbol(TLShapeId, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 374, 2)) +>RecordId : Symbol(RecordId, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 370, 65)) +>TLShape : Symbol(TLShape, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 357, 2)) + +type TLShapePartial = T extends T +>TLShapePartial : Symbol(TLShapePartial, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 376, 35)) +>T : Symbol(T, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 378, 20)) +>TLShape : Symbol(TLShape, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 357, 2)) +>TLShape : Symbol(TLShape, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 357, 2)) +>T : Symbol(T, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 378, 20)) +>T : Symbol(T, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 378, 20)) + + ? { + id: TLShapeId; +>id : Symbol(id, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 379, 5)) +>TLShapeId : Symbol(TLShapeId, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 374, 2)) + + meta?: Partial; +>meta : Symbol(meta, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 380, 20)) +>Partial : Symbol(Partial, Decl(lib.es5.d.ts, --, --)) +>T : Symbol(T, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 378, 20)) + + props?: Partial; +>props : Symbol(props, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 381, 32)) +>Partial : Symbol(Partial, Decl(lib.es5.d.ts, --, --)) +>T : Symbol(T, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 378, 20)) + + type: T["type"]; +>type : Symbol(type, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 382, 34)) +>T : Symbol(T, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 378, 20)) + + } & Partial> +>Partial : Symbol(Partial, Decl(lib.es5.d.ts, --, --)) +>Omit : Symbol(Omit, Decl(lib.es5.d.ts, --, --)) +>T : Symbol(T, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 378, 20)) + + : never; + +interface TLGlobalShapePropsMap { +>TLGlobalShapePropsMap : Symbol(TLGlobalShapePropsMap, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 116, 1), Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 385, 10)) + + html: { +>html : Symbol(TLGlobalShapePropsMap.html, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 387, 33)) + + w: number; +>w : Symbol(w, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 388, 9)) + + h: number; +>h : Symbol(h, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 389, 14)) + + }; + container_section: { +>container_section : Symbol(TLGlobalShapePropsMap.container_section, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 391, 4)) + + w: number; +>w : Symbol(w, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 392, 22)) + + h: number; +>h : Symbol(h, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 393, 14)) + + }; + container: { +>container : Symbol(TLGlobalShapePropsMap.container, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 395, 4)) + + w: number; +>w : Symbol(w, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 396, 14)) + + h: number; +>h : Symbol(h, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 397, 14)) + + }; +} + +type Dimensions = { +>Dimensions : Symbol(Dimensions, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 400, 1)) + + w: number; +>w : Symbol(w, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 402, 19)) + + h: number; +>h : Symbol(h, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 403, 12)) + +}; + +export type ShapeWithDimensions = T & { +>ShapeWithDimensions : Symbol(ShapeWithDimensions, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 405, 2)) +>T : Symbol(T, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 407, 32)) +>TLShape : Symbol(TLShape, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 357, 2)) +>T : Symbol(T, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 407, 32)) + + props: T["props"] & Dimensions; +>props : Symbol(props, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 407, 58)) +>T : Symbol(T, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 407, 32)) +>Dimensions : Symbol(Dimensions, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 400, 1)) + +}; + +export type ShapePartialWithDimensions = TLShapePartial< +>ShapePartialWithDimensions : Symbol(ShapePartialWithDimensions, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 409, 2)) +>T : Symbol(T, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 411, 39)) +>TLShape : Symbol(TLShape, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 357, 2)) +>TLShapePartial : Symbol(TLShapePartial, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 376, 35)) + + ShapeWithDimensions +>ShapeWithDimensions : Symbol(ShapeWithDimensions, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 405, 2)) +>T : Symbol(T, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 411, 39)) + +> & { + props: TLShapePartial>["props"] & Dimensions; +>props : Symbol(props, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 413, 5)) +>TLShapePartial : Symbol(TLShapePartial, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 376, 35)) +>ShapeWithDimensions : Symbol(ShapeWithDimensions, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 405, 2)) +>T : Symbol(T, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 411, 39)) +>Dimensions : Symbol(Dimensions, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 400, 1)) + +}; + +export function createShapeAtNearestAdjacentEmptyPosition< +>createShapeAtNearestAdjacentEmptyPosition : Symbol(createShapeAtNearestAdjacentEmptyPosition, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 415, 2)) + + N extends ShapeWithDimensions, +>N : Symbol(N, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 417, 58)) +>ShapeWithDimensions : Symbol(ShapeWithDimensions, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 405, 2)) +>TLShape : Symbol(TLShape, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 357, 2)) + +>({ + newShape: newShapePartial, +>newShape : Symbol(newShape, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 421, 4)) +>newShapePartial : Symbol(newShapePartial, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 419, 3)) + +}: { + newShape: ShapePartialWithDimensions; +>newShape : Symbol(newShape, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 421, 4)) +>ShapePartialWithDimensions : Symbol(ShapePartialWithDimensions, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 409, 2)) +>N : Symbol(N, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 417, 58)) + +}): { + newShape: N; +>newShape : Symbol(newShape, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 423, 5)) +>N : Symbol(N, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 417, 58)) + +} { + newShapePartial.props?.w; +>newShapePartial.props?.w : Symbol(w, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 402, 19), Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 155, 32), Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 180, 29), Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 188, 29), Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 200, 14) ... and 6 more) +>newShapePartial.props : Symbol(props, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 381, 32), Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 413, 5)) +>newShapePartial : Symbol(newShapePartial, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 419, 3)) +>props : Symbol(props, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 381, 32), Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 413, 5)) +>w : Symbol(w, Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 402, 19), Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 155, 32), Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 180, 29), Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 188, 29), Decl(crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts, 200, 14) ... and 6 more) +} + diff --git a/tests/baselines/reference/crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.types b/tests/baselines/reference/crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.types new file mode 100644 index 0000000000000..e7287dfb35f6c --- /dev/null +++ b/tests/baselines/reference/crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.types @@ -0,0 +1,1026 @@ +//// [tests/cases/compiler/crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts] //// + +=== Performance Stats === +Type Count: 500,000 +Instantiation count: 25,000 +Symbol count: 500,000 + +=== crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts === +type JsonPrimitive = boolean | null | number | string; +>JsonPrimitive : JsonPrimitive +> : ^^^^^^^^^^^^^ + +type JsonArray = JsonValue[]; +>JsonArray : JsonArray +> : ^^^^^^^^^ + +type JsonValue = JsonArray | JsonObject | JsonPrimitive; +>JsonValue : JsonValue +> : ^^^^^^^^^ + +interface JsonObject { + [key: string]: JsonValue | undefined; +>key : string +> : ^^^^^^ +} +type IndexKey = string & { +>IndexKey : IndexKey +> : ^^^^^^^^ + + __brand: "indexKey"; +>__brand : "indexKey" +> : ^^^^^^^^^^ + +}; + +interface TLBaseAsset + extends BaseRecord<"asset", TLAssetId> { + type: Type; +>type : Type +> : ^^^^ + + props: Props; +>props : Props +> : ^^^^^ + + meta: JsonObject; +>meta : JsonObject +> : ^^^^^^^^^^ +} +type TLAssetId = RecordId>; +>TLAssetId : TLAssetId +> : ^^^^^^^^^ + +interface VecModel { + x: number; +>x : number +> : ^^^^^^ + + y: number; +>y : number +> : ^^^^^^ + + z?: number; +>z : number | undefined +> : ^^^^^^^^^^^^^^^^^^ +} + +interface TLShapeCrop { + topLeft: VecModel; +>topLeft : VecModel +> : ^^^^^^^^ + + bottomRight: VecModel; +>bottomRight : VecModel +> : ^^^^^^^^ + + isCircle?: boolean; +>isCircle : boolean | undefined +> : ^^^^^^^^^^^^^^^^^^^ +} + +type TLRichText = { +>TLRichText : TLRichText +> : ^^^^^^^^^^ + + attrs?: any; +>attrs : any +> : ^^^ + + content: unknown[]; +>content : unknown[] +> : ^^^^^^^^^ + + type: string; +>type : string +> : ^^^^^^ + +}; + +type TLDefaultColorStyle = +>TLDefaultColorStyle : TLDefaultColorStyle +> : ^^^^^^^^^^^^^^^^^^^ + + | "black" + | "blue" + | "green" + | "grey" + | "light-blue" + | "light-green" + | "light-red" + | "light-violet" + | "orange" + | "red" + | "violet" + | "white" + | "yellow"; +type TLDefaultFillStyle = +>TLDefaultFillStyle : TLDefaultFillStyle +> : ^^^^^^^^^^^^^^^^^^ + + | "fill" + | "lined-fill" + | "none" + | "pattern" + | "semi" + | "solid"; +type TLDefaultDashStyle = "solid" | "draw" | "dashed" | "dotted"; +>TLDefaultDashStyle : TLDefaultDashStyle +> : ^^^^^^^^^^^^^^^^^^ + +type TLDefaultSizeStyle = "l" | "m" | "s" | "xl"; +>TLDefaultSizeStyle : TLDefaultSizeStyle +> : ^^^^^^^^^^^^^^^^^^ + +type TLLineShapeSplineStyle = "line" | "cubic"; +>TLLineShapeSplineStyle : TLLineShapeSplineStyle +> : ^^^^^^^^^^^^^^^^^^^^^^ + +type TLDefaultFontStyle = "draw" | "mono" | "sans" | "serif"; +>TLDefaultFontStyle : TLDefaultFontStyle +> : ^^^^^^^^^^^^^^^^^^ + +type TLDefaultHorizontalAlignStyle = +>TLDefaultHorizontalAlignStyle : TLDefaultHorizontalAlignStyle +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + + | "end-legacy" + | "end" + | "middle-legacy" + | "middle" + | "start-legacy" + | "start"; +type TLDefaultVerticalAlignStyle = "end" | "middle" | "start"; +>TLDefaultVerticalAlignStyle : TLDefaultVerticalAlignStyle +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +type TLDefaultTextAlignStyle = "end" | "middle" | "start"; +>TLDefaultTextAlignStyle : TLDefaultTextAlignStyle +> : ^^^^^^^^^^^^^^^^^^^^^^^ + +type TLArrowShapeKind = "arc" | "elbow"; +>TLArrowShapeKind : TLArrowShapeKind +> : ^^^^^^^^^^^^^^^^ + +type TLArrowShapeArrowheadStyle = +>TLArrowShapeArrowheadStyle : TLArrowShapeArrowheadStyle +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^ + + | "arrow" + | "bar" + | "diamond" + | "dot" + | "inverted" + | "none" + | "pipe" + | "square" + | "triangle"; +type TLGeoShapeGeoStyle = +>TLGeoShapeGeoStyle : TLGeoShapeGeoStyle +> : ^^^^^^^^^^^^^^^^^^ + + | "arrow-down" + | "arrow-left" + | "arrow-right" + | "arrow-up" + | "check-box" + | "cloud" + | "diamond" + | "ellipse" + | "heart" + | "hexagon" + | "octagon" + | "oval" + | "pentagon" + | "rectangle" + | "rhombus" + | "rhombus-2" + | "star" + | "trapezoid" + | "triangle" + | "x-box"; +type TLOpacityType = number; +>TLOpacityType : number +> : ^^^^^^ + +type TLPageId = RecordId; +>TLPageId : TLPageId +> : ^^^^^^^^ + +type TLParentId = TLPageId | TLShapeId; +>TLParentId : TLParentId +> : ^^^^^^^^^^ + +interface TLPage extends BaseRecord<"page", TLPageId> { + name: string; +>name : string +> : ^^^^^^ + + index: IndexKey; +>index : IndexKey +> : ^^^^^^^^ + + meta: JsonObject; +>meta : JsonObject +> : ^^^^^^^^^^ +} + +interface TLLineShapePoint { + id: string; +>id : string +> : ^^^^^^ + + index: IndexKey; +>index : IndexKey +> : ^^^^^^^^ + + x: number; +>x : number +> : ^^^^^^ + + y: number; +>y : number +> : ^^^^^^ +} + +interface TLGlobalShapePropsMap {} + +interface TLBaseShape { + readonly id: TLShapeId; +>id : TLShapeId +> : ^^^^^^^^^ + + readonly typeName: "shape"; +>typeName : "shape" +> : ^^^^^^^ + + type: Type; +>type : Type +> : ^^^^ + + x: number; +>x : number +> : ^^^^^^ + + y: number; +>y : number +> : ^^^^^^ + + rotation: number; +>rotation : number +> : ^^^^^^ + + index: IndexKey; +>index : IndexKey +> : ^^^^^^^^ + + parentId: TLParentId; +>parentId : TLParentId +> : ^^^^^^^^^^ + + isLocked: boolean; +>isLocked : boolean +> : ^^^^^^^ + + opacity: TLOpacityType; +>opacity : number +> : ^^^^^^ + + props: Props; +>props : Props +> : ^^^^^ + + meta: JsonObject; +>meta : JsonObject +> : ^^^^^^^^^^ +} + +interface TLArrowShapeProps { + kind: TLArrowShapeKind; +>kind : TLArrowShapeKind +> : ^^^^^^^^^^^^^^^^ + + labelColor: TLDefaultColorStyle; +>labelColor : TLDefaultColorStyle +> : ^^^^^^^^^^^^^^^^^^^ + + color: TLDefaultColorStyle; +>color : TLDefaultColorStyle +> : ^^^^^^^^^^^^^^^^^^^ + + fill: TLDefaultFillStyle; +>fill : TLDefaultFillStyle +> : ^^^^^^^^^^^^^^^^^^ + + dash: TLDefaultDashStyle; +>dash : TLDefaultDashStyle +> : ^^^^^^^^^^^^^^^^^^ + + size: TLDefaultSizeStyle; +>size : TLDefaultSizeStyle +> : ^^^^^^^^^^^^^^^^^^ + + arrowheadStart: TLArrowShapeArrowheadStyle; +>arrowheadStart : TLArrowShapeArrowheadStyle +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^ + + arrowheadEnd: TLArrowShapeArrowheadStyle; +>arrowheadEnd : TLArrowShapeArrowheadStyle +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^ + + font: TLDefaultFontStyle; +>font : TLDefaultFontStyle +> : ^^^^^^^^^^^^^^^^^^ + + start: VecModel; +>start : VecModel +> : ^^^^^^^^ + + end: VecModel; +>end : VecModel +> : ^^^^^^^^ + + bend: number; +>bend : number +> : ^^^^^^ + + richText: TLRichText; +>richText : TLRichText +> : ^^^^^^^^^^ + + labelPosition: number; +>labelPosition : number +> : ^^^^^^ + + scale: number; +>scale : number +> : ^^^^^^ + + elbowMidPoint: number; +>elbowMidPoint : number +> : ^^^^^^ +} +type TLArrowShape = TLBaseShape<"arrow", TLArrowShapeProps>; +>TLArrowShape : TLArrowShape +> : ^^^^^^^^^^^^ + +interface TLBookmarkShapeProps { + w: number; +>w : number +> : ^^^^^^ + + h: number; +>h : number +> : ^^^^^^ + + assetId: TLAssetId | null; +>assetId : TLAssetId | null +> : ^^^^^^^^^^^^^^^^ + + url: string; +>url : string +> : ^^^^^^ +} + +type TLBookmarkShape = TLBaseShape<"bookmark", TLBookmarkShapeProps>; +>TLBookmarkShape : TLBookmarkShape +> : ^^^^^^^^^^^^^^^ + +export interface TLDrawShapeProps { + color: TLDefaultColorStyle; +>color : TLDefaultColorStyle +> : ^^^^^^^^^^^^^^^^^^^ + + fill: TLDefaultFillStyle; +>fill : TLDefaultFillStyle +> : ^^^^^^^^^^^^^^^^^^ + + dash: TLDefaultDashStyle; +>dash : TLDefaultDashStyle +> : ^^^^^^^^^^^^^^^^^^ + + size: TLDefaultSizeStyle; +>size : TLDefaultSizeStyle +> : ^^^^^^^^^^^^^^^^^^ + + segments: TLDrawShapeSegment[]; +>segments : TLDrawShapeSegment[] +> : ^^^^^^^^^^^^^^^^^^^^ + + isComplete: boolean; +>isComplete : boolean +> : ^^^^^^^ + + isClosed: boolean; +>isClosed : boolean +> : ^^^^^^^ + + isPen: boolean; +>isPen : boolean +> : ^^^^^^^ + + scale: number; +>scale : number +> : ^^^^^^ + + scaleX: number; +>scaleX : number +> : ^^^^^^ + + scaleY: number; +>scaleY : number +> : ^^^^^^ +} + +type TLDrawShape = TLBaseShape<"draw", TLDrawShapeProps>; +>TLDrawShape : TLDrawShape +> : ^^^^^^^^^^^ + +interface TLEmbedShapeProps { + w: number; +>w : number +> : ^^^^^^ + + h: number; +>h : number +> : ^^^^^^ + + url: string; +>url : string +> : ^^^^^^ +} + +type TLEmbedShape = TLBaseShape<"embed", TLEmbedShapeProps>; +>TLEmbedShape : TLEmbedShape +> : ^^^^^^^^^^^^ + +interface TLFrameShapeProps { + w: number; +>w : number +> : ^^^^^^ + + h: number; +>h : number +> : ^^^^^^ + + name: string; +>name : string +> : ^^^^^^ + + color: TLDefaultColorStyle; +>color : TLDefaultColorStyle +> : ^^^^^^^^^^^^^^^^^^^ +} + +type TLFrameShape = TLBaseShape<"frame", TLFrameShapeProps>; +>TLFrameShape : TLFrameShape +> : ^^^^^^^^^^^^ + +interface TLGeoShapeProps { + geo: TLGeoShapeGeoStyle; +>geo : TLGeoShapeGeoStyle +> : ^^^^^^^^^^^^^^^^^^ + + dash: TLDefaultDashStyle; +>dash : TLDefaultDashStyle +> : ^^^^^^^^^^^^^^^^^^ + + url: string; +>url : string +> : ^^^^^^ + + w: number; +>w : number +> : ^^^^^^ + + h: number; +>h : number +> : ^^^^^^ + + growY: number; +>growY : number +> : ^^^^^^ + + scale: number; +>scale : number +> : ^^^^^^ + + labelColor: TLDefaultColorStyle; +>labelColor : TLDefaultColorStyle +> : ^^^^^^^^^^^^^^^^^^^ + + color: TLDefaultColorStyle; +>color : TLDefaultColorStyle +> : ^^^^^^^^^^^^^^^^^^^ + + fill: TLDefaultFillStyle; +>fill : TLDefaultFillStyle +> : ^^^^^^^^^^^^^^^^^^ + + size: TLDefaultSizeStyle; +>size : TLDefaultSizeStyle +> : ^^^^^^^^^^^^^^^^^^ + + font: TLDefaultFontStyle; +>font : TLDefaultFontStyle +> : ^^^^^^^^^^^^^^^^^^ + + align: TLDefaultHorizontalAlignStyle; +>align : TLDefaultHorizontalAlignStyle +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + + verticalAlign: TLDefaultVerticalAlignStyle; +>verticalAlign : TLDefaultVerticalAlignStyle +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + + richText: TLRichText; +>richText : TLRichText +> : ^^^^^^^^^^ +} + +type TLGeoShape = TLBaseShape<"geo", TLGeoShapeProps>; +>TLGeoShape : TLGeoShape +> : ^^^^^^^^^^ + +interface TLGroupShapeProps {} + +type TLGroupShape = TLBaseShape<"group", TLGroupShapeProps>; +>TLGroupShape : TLGroupShape +> : ^^^^^^^^^^^^ + +interface TLDrawShapeSegment { + type: "free" | "straight"; +>type : "free" | "straight" +> : ^^^^^^^^^^^^^^^^^^^ + + path: string; +>path : string +> : ^^^^^^ +} + +interface TLHighlightShapeProps { + color: TLDefaultColorStyle; +>color : TLDefaultColorStyle +> : ^^^^^^^^^^^^^^^^^^^ + + size: TLDefaultSizeStyle; +>size : TLDefaultSizeStyle +> : ^^^^^^^^^^^^^^^^^^ + + segments: TLDrawShapeSegment[]; +>segments : TLDrawShapeSegment[] +> : ^^^^^^^^^^^^^^^^^^^^ + + isComplete: boolean; +>isComplete : boolean +> : ^^^^^^^ + + isPen: boolean; +>isPen : boolean +> : ^^^^^^^ + + scale: number; +>scale : number +> : ^^^^^^ + + scaleX: number; +>scaleX : number +> : ^^^^^^ + + scaleY: number; +>scaleY : number +> : ^^^^^^ +} + +type TLHighlightShape = TLBaseShape<"highlight", TLHighlightShapeProps>; +>TLHighlightShape : TLHighlightShape +> : ^^^^^^^^^^^^^^^^ + +interface TLImageShapeProps { + w: number; +>w : number +> : ^^^^^^ + + h: number; +>h : number +> : ^^^^^^ + + playing: boolean; +>playing : boolean +> : ^^^^^^^ + + url: string; +>url : string +> : ^^^^^^ + + assetId: null | TLAssetId; +>assetId : TLAssetId | null +> : ^^^^^^^^^^^^^^^^ + + crop: null | TLShapeCrop; +>crop : TLShapeCrop | null +> : ^^^^^^^^^^^^^^^^^^ + + flipX: boolean; +>flipX : boolean +> : ^^^^^^^ + + flipY: boolean; +>flipY : boolean +> : ^^^^^^^ + + altText: string; +>altText : string +> : ^^^^^^ +} + +type TLImageShape = TLBaseShape<"image", TLImageShapeProps>; +>TLImageShape : TLImageShape +> : ^^^^^^^^^^^^ + +interface TLLineShapeProps { + color: TLDefaultColorStyle; +>color : TLDefaultColorStyle +> : ^^^^^^^^^^^^^^^^^^^ + + dash: TLDefaultDashStyle; +>dash : TLDefaultDashStyle +> : ^^^^^^^^^^^^^^^^^^ + + size: TLDefaultSizeStyle; +>size : TLDefaultSizeStyle +> : ^^^^^^^^^^^^^^^^^^ + + spline: TLLineShapeSplineStyle; +>spline : TLLineShapeSplineStyle +> : ^^^^^^^^^^^^^^^^^^^^^^ + + points: Record; +>points : Record +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + + scale: number; +>scale : number +> : ^^^^^^ +} + +type TLLineShape = TLBaseShape<"line", TLLineShapeProps>; +>TLLineShape : TLLineShape +> : ^^^^^^^^^^^ + +interface TLNoteShapeProps { + color: TLDefaultColorStyle; +>color : TLDefaultColorStyle +> : ^^^^^^^^^^^^^^^^^^^ + + labelColor: TLDefaultColorStyle; +>labelColor : TLDefaultColorStyle +> : ^^^^^^^^^^^^^^^^^^^ + + size: TLDefaultSizeStyle; +>size : TLDefaultSizeStyle +> : ^^^^^^^^^^^^^^^^^^ + + font: TLDefaultFontStyle; +>font : TLDefaultFontStyle +> : ^^^^^^^^^^^^^^^^^^ + + fontSizeAdjustment: number; +>fontSizeAdjustment : number +> : ^^^^^^ + + align: TLDefaultHorizontalAlignStyle; +>align : TLDefaultHorizontalAlignStyle +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + + verticalAlign: TLDefaultVerticalAlignStyle; +>verticalAlign : TLDefaultVerticalAlignStyle +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + + growY: number; +>growY : number +> : ^^^^^^ + + url: string; +>url : string +> : ^^^^^^ + + richText: TLRichText; +>richText : TLRichText +> : ^^^^^^^^^^ + + scale: number; +>scale : number +> : ^^^^^^ +} + +type TLNoteShape = TLBaseShape<"note", TLNoteShapeProps>; +>TLNoteShape : TLNoteShape +> : ^^^^^^^^^^^ + +interface TLTextShapeProps { + color: TLDefaultColorStyle; +>color : TLDefaultColorStyle +> : ^^^^^^^^^^^^^^^^^^^ + + size: TLDefaultSizeStyle; +>size : TLDefaultSizeStyle +> : ^^^^^^^^^^^^^^^^^^ + + font: TLDefaultFontStyle; +>font : TLDefaultFontStyle +> : ^^^^^^^^^^^^^^^^^^ + + textAlign: TLDefaultTextAlignStyle; +>textAlign : TLDefaultTextAlignStyle +> : ^^^^^^^^^^^^^^^^^^^^^^^ + + w: number; +>w : number +> : ^^^^^^ + + richText: TLRichText; +>richText : TLRichText +> : ^^^^^^^^^^ + + scale: number; +>scale : number +> : ^^^^^^ + + autoSize: boolean; +>autoSize : boolean +> : ^^^^^^^ +} + +type TLTextShape = TLBaseShape<"text", TLTextShapeProps>; +>TLTextShape : TLTextShape +> : ^^^^^^^^^^^ + +interface TLVideoShapeProps { + w: number; +>w : number +> : ^^^^^^ + + h: number; +>h : number +> : ^^^^^^ + + time: number; +>time : number +> : ^^^^^^ + + playing: boolean; +>playing : boolean +> : ^^^^^^^ + + autoplay: boolean; +>autoplay : boolean +> : ^^^^^^^ + + url: string; +>url : string +> : ^^^^^^ + + assetId: null | TLAssetId; +>assetId : TLAssetId | null +> : ^^^^^^^^^^^^^^^^ + + altText: string; +>altText : string +> : ^^^^^^ +} + +type TLVideoShape = TLBaseShape<"video", TLVideoShapeProps>; +>TLVideoShape : TLVideoShape +> : ^^^^^^^^^^^^ + +type TLDefaultShape = +>TLDefaultShape : TLDefaultShape +> : ^^^^^^^^^^^^^^ + + | TLArrowShape + | TLBookmarkShape + | TLDrawShape + | TLEmbedShape + | TLFrameShape + | TLGeoShape + | TLGroupShape + | TLHighlightShape + | TLImageShape + | TLLineShape + | TLNoteShape + | TLTextShape + | TLVideoShape; + +type TLIndexedShapes = { +>TLIndexedShapes : TLIndexedShapes +> : ^^^^^^^^^^^^^^^ + + [K in + | keyof TLGlobalShapePropsMap + | TLDefaultShape["type"] as K extends TLDefaultShape["type"] + ? K extends "group" + ? K + : K extends keyof TLGlobalShapePropsMap + ? TLGlobalShapePropsMap[K] extends null | undefined + ? never + : K + : K + : K]: K extends "group" + ? Extract< + TLDefaultShape, + { + type: K; +>type : K +> : ^ + } + > + : K extends TLDefaultShape["type"] + ? K extends keyof TLGlobalShapePropsMap + ? TLBaseShape + : Extract< + TLDefaultShape, + { + type: K; +>type : K +> : ^ + } + > + : TLBaseShape; +}; + +type TLShape = +>TLShape : TLShape +> : ^^^^^^^^^^ + + TLIndexedShapes[K]; + +interface BaseRecord< + TypeName extends string, + Id extends RecordId, +> { + readonly id: Id; +>id : Id +> : ^^ + + readonly typeName: TypeName; +>typeName : TypeName +> : ^^^^^^^^ +} + +type UnknownRecord = BaseRecord>; +>UnknownRecord : UnknownRecord +> : ^^^^^^^^^^^^^ + +type RecordId = string & { +>RecordId : RecordId +> : ^^^^^^^^^^^ + + __type__: R; +>__type__ : R +> : ^ + +}; + +type TLShapeId = RecordId; +>TLShapeId : TLShapeId +> : ^^^^^^^^^ + +type TLShapePartial = T extends T +>TLShapePartial : TLShapePartial +> : ^^^^^^^^^^^^^^^^^ + + ? { + id: TLShapeId; +>id : TLShapeId +> : ^^^^^^^^^ + + meta?: Partial; +>meta : Partial | undefined +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + + props?: Partial; +>props : Partial | undefined +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + + type: T["type"]; +>type : T["type"] +> : ^^^^^^^^^ + + } & Partial> + : never; + +interface TLGlobalShapePropsMap { + html: { +>html : { w: number; h: number; } +> : ^^^^^ ^^^^^ ^^^ + + w: number; +>w : number +> : ^^^^^^ + + h: number; +>h : number +> : ^^^^^^ + + }; + container_section: { +>container_section : { w: number; h: number; } +> : ^^^^^ ^^^^^ ^^^ + + w: number; +>w : number +> : ^^^^^^ + + h: number; +>h : number +> : ^^^^^^ + + }; + container: { +>container : { w: number; h: number; } +> : ^^^^^ ^^^^^ ^^^ + + w: number; +>w : number +> : ^^^^^^ + + h: number; +>h : number +> : ^^^^^^ + + }; +} + +type Dimensions = { +>Dimensions : Dimensions +> : ^^^^^^^^^^ + + w: number; +>w : number +> : ^^^^^^ + + h: number; +>h : number +> : ^^^^^^ + +}; + +export type ShapeWithDimensions = T & { +>ShapeWithDimensions : ShapeWithDimensions +> : ^^^^^^^^^^^^^^^^^^^^^^ + + props: T["props"] & Dimensions; +>props : T["props"] & Dimensions +> : ^^^^^^^^^^^^^^^^^^^^^^^ + +}; + +export type ShapePartialWithDimensions = TLShapePartial< +>ShapePartialWithDimensions : ShapePartialWithDimensions +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + + ShapeWithDimensions +> & { + props: TLShapePartial>["props"] & Dimensions; +>props : TLShapePartial>["props"] & Dimensions +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +}; + +export function createShapeAtNearestAdjacentEmptyPosition< +>createShapeAtNearestAdjacentEmptyPosition : >({ newShape: newShapePartial, }: { newShape: ShapePartialWithDimensions; }) => { newShape: N; } +> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ + + N extends ShapeWithDimensions, +>({ + newShape: newShapePartial, +>newShape : any +> : ^^^ +>newShapePartial : ShapePartialWithDimensions +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +}: { + newShape: ShapePartialWithDimensions; +>newShape : ShapePartialWithDimensions +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +}): { + newShape: N; +>newShape : N +> : ^ + +} { + newShapePartial.props?.w; +>newShapePartial.props?.w : (TLArrowShapeProps & Dimensions & N["props"])["w"] | (TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] | (TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] | (TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] | (TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] | (TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] | (TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] | (TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] | (TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] | (TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] | (TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] | (TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] | (TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] | (TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] | (TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] | (TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] | (TLBookmarkShapeProps & Dimensions & N["props"])["w"] | (TLBookmarkShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"] | (TLBookmarkShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] | (TLBookmarkShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] | (TLBookmarkShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] | (TLBookmarkShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] | (TLBookmarkShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] | (TLBookmarkShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] | (TLBookmarkShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] | (TLBookmarkShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] | (TLBookmarkShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] | (TLBookmarkShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] | (TLBookmarkShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] | (TLBookmarkShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] | (TLBookmarkShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] | (TLBookmarkShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] | (TLDrawShapeProps & Dimensions & N["props"])["w"] | (TLDrawShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"] | (TLDrawShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] | (TLDrawShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] | (TLDrawShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] | (TLDrawShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] | (TLDrawShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] | (TLDrawShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] | (TLDrawShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] | (TLDrawShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] | (TLDrawShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] | (TLDrawShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] | (TLDrawShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] | (TLDrawShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] | (TLDrawShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] | (TLDrawShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] | (TLEmbedShapeProps & Dimensions & N["props"])["w"] | (TLEmbedShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"] | (TLEmbedShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] | (TLEmbedShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] | (TLEmbedShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] | (TLEmbedShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] | (TLEmbedShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] | (TLEmbedShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] | (TLEmbedShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] | (TLEmbedShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] | (TLEmbedShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] | (TLEmbedShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] | (TLEmbedShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] | (TLEmbedShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] | (TLEmbedShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] | (TLEmbedShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] | (TLFrameShapeProps & Dimensions & N["props"])["w"] | (TLFrameShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"] | (TLFrameShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] | (TLFrameShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] | (TLFrameShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] | (TLFrameShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] | (TLFrameShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] | (TLFrameShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] | (TLFrameShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] | (TLFrameShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] | (TLFrameShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] | (TLFrameShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] | (TLFrameShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] | (TLFrameShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] | (TLFrameShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] | (TLFrameShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] | (TLGeoShapeProps & Dimensions & N["props"])["w"] | (TLGeoShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"] | (TLGeoShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] | (TLGeoShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] | (TLGeoShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] | (TLGeoShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] | (TLGeoShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] | (TLGeoShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] | (TLGeoShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] | (TLGeoShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] | (TLGeoShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] | (TLGeoShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] | (TLGeoShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] | (TLGeoShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] | (TLGeoShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] | (TLGeoShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] | (TLGroupShapeProps & Dimensions & N["props"])["w"] | (TLGroupShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"] | (TLGroupShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] | (TLGroupShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] | (TLGroupShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] | (TLGroupShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] | (TLGroupShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] | (TLGroupShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] | (TLGroupShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] | (TLGroupShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] | (TLGroupShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] | (TLGroupShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] | (TLGroupShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] | (TLGroupShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] | (TLGroupShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] | (TLGroupShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] | (TLHighlightShapeProps & Dimensions & N["props"])["w"] | (TLHighlightShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"] | (TLHighlightShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] | (TLHighlightShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] | (TLHighlightShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] | (TLHighlightShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] | (TLHighlightShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] | (TLHighlightShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] | (TLHighlightShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] | (TLHighlightShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] | (TLHighlightShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] | (TLHighlightShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] | (TLHighlightShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] | (TLHighlightShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] | (TLHighlightShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] | (TLHighlightShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] | (TLImageShapeProps & Dimensions & N["props"])["w"] | (TLImageShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"] | (TLImageShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] | (TLImageShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] | (TLImageShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] | (TLImageShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] | (TLImageShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] | (TLImageShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] | (TLImageShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] | (TLImageShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] | (TLImageShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] | (TLImageShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] | (TLImageShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] | (TLImageShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] | (TLImageShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] | (TLImageShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] | (TLLineShapeProps & Dimensions & N["props"])["w"] | (TLLineShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"] | (TLLineShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] | (TLLineShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] | (TLLineShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] | (TLLineShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] | (TLLineShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] | (TLLineShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] | (TLLineShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] | (TLLineShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] | (TLLineShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] | (TLLineShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] | (TLLineShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] | (TLLineShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] | (TLLineShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] | (TLLineShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] | (TLNoteShapeProps & Dimensions & N["props"])["w"] | (TLNoteShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"] | (TLNoteShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] | (TLNoteShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] | (TLNoteShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] | (TLNoteShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] | (TLNoteShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] | (TLNoteShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] | (TLNoteShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] | (TLNoteShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] | (TLNoteShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] | (TLNoteShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] | (TLNoteShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] | (TLNoteShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] | (TLNoteShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] | (TLNoteShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] | (TLTextShapeProps & Dimensions & N["props"])["w"] | (TLTextShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"] | (TLTextShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] | (TLTextShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] | (TLTextShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] | (TLTextShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] | (TLTextShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] | (TLTextShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] | (TLTextShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] | (TLTextShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] | (TLTextShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] | (TLTextShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] | (TLTextShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] | (TLTextShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] | (TLTextShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] | (TLTextShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] | (TLVideoShapeProps & Dimensions & N["props"])["w"] | (TLVideoShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"] | (TLVideoShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] | (TLVideoShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] | (TLVideoShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] | (TLVideoShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] | (TLVideoShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] | (TLVideoShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] | (TLVideoShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] | (TLVideoShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] | (TLVideoShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] | (TLVideoShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] | (TLVideoShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] | (TLVideoShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] | (TLVideoShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] | (TLVideoShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] | ({ w: number; h: number; } & Dimensions & N["props"])["w"] | ({ w: number; h: number; } & TLArrowShapeProps & Dimensions & N["props"])["w"] | ({ w: number; h: number; } & TLBookmarkShapeProps & Dimensions & N["props"])["w"] | ({ w: number; h: number; } & TLDrawShapeProps & Dimensions & N["props"])["w"] | ({ w: number; h: number; } & TLEmbedShapeProps & Dimensions & N["props"])["w"] | ({ w: number; h: number; } & TLFrameShapeProps & Dimensions & N["props"])["w"] | ({ w: number; h: number; } & TLGeoShapeProps & Dimensions & N["props"])["w"] | ({ w: number; h: number; } & TLGroupShapeProps & Dimensions & N["props"])["w"] | ({ w: number; h: number; } & TLHighlightShapeProps & Dimensions & N["props"])["w"] | ({ w: number; h: number; } & TLImageShapeProps & Dimensions & N["props"])["w"] | ({ w: number; h: number; } & TLLineShapeProps & Dimensions & N["props"])["w"] | ({ w: number; h: number; } & TLNoteShapeProps & Dimensions & N["props"])["w"] | ({ w: number; h: number; } & TLTextShapeProps & Dimensions & N["props"])["w"] | ({ w: number; h: number; } & TLVideoShapeProps & Dimensions & N["props"])["w"] | ({ w: number; h: number; } & { w: number; h: number; } & Dimensions & N["props"])["w"] | ({ w: number; h: number; } & { w: number; h: number; } & Dimensions & N["props"])["w"] | ({ w: number; h: number; } & Dimensions & N["props"])["w"] | ({ w: number; h: number; } & TLArrowShapeProps & Dimensions & N["props"])["w"] | ({ w: number; h: number; } & TLBookmarkShapeProps & Dimensions & N["props"])["w"] | ({ w: number; h: number; } & TLDrawShapeProps & Dimensions & N["props"])["w"] | ({ w: number; h: number; } & TLEmbedShapeProps & Dimensions & N["props"])["w"] | ({ w: number; h: number; } & TLFrameShapeProps & Dimensions & N["props"])["w"] | ({ w: number; h: number; } & TLGeoShapeProps & Dimensions & N["props"])["w"] | ({ w: number; h: number; } & TLGroupShapeProps & Dimensions & N["props"])["w"] | ({ w: number; h: number; } & TLHighlightShapeProps & Dimensions & N["props"])["w"] | ({ w: number; h: number; } & TLImageShapeProps & Dimensions & N["props"])["w"] | ({ w: number; h: number; } & TLLineShapeProps & Dimensions & N["props"])["w"] | ({ w: number; h: number; } & TLNoteShapeProps & Dimensions & N["props"])["w"] | ({ w: number; h: number; } & TLTextShapeProps & Dimensions & N["props"])["w"] | ({ w: number; h: number; } & TLVideoShapeProps & Dimensions & N["props"])["w"] | ({ w: number; h: number; } & { w: number; h: number; } & Dimensions & N["props"])["w"] | ({ w: number; h: number; } & { w: number; h: number; } & Dimensions & N["props"])["w"] | ({ w: number; h: number; } & Dimensions & N["props"])["w"] | ({ w: number; h: number; } & TLArrowShapeProps & Dimensions & N["props"])["w"] | ({ w: number; h: number; } & TLBookmarkShapeProps & Dimensions & N["props"])["w"] | ({ w: number; h: number; } & TLDrawShapeProps & Dimensions & N["props"])["w"] | ({ w: number; h: number; } & TLEmbedShapeProps & Dimensions & N["props"])["w"] | ({ w: number; h: number; } & TLFrameShapeProps & Dimensions & N["props"])["w"] | ({ w: number; h: number; } & TLGeoShapeProps & Dimensions & N["props"])["w"] | ({ w: number; h: number; } & TLGroupShapeProps & Dimensions & N["props"])["w"] | ({ w: number; h: number; } & TLHighlightShapeProps & Dimensions & N["props"])["w"] | ({ w: number; h: number; } & TLImageShapeProps & Dimensions & N["props"])["w"] | ({ w: number; h: number; } & TLLineShapeProps & Dimensions & N["props"])["w"] | ({ w: number; h: number; } & TLNoteShapeProps & Dimensions & N["props"])["w"] | ({ w: number; h: number; } & TLTextShapeProps & Dimensions & N["props"])["w"] | ({ w: number; h: number; } & TLVideoShapeProps & Dimensions & N["props"])["w"] | ({ w: number; h: number; } & { w: number; h: number; } & Dimensions & N["props"])["w"] | ({ w: number; h: number; } & { w: number; h: number; } & Dimensions & N["props"])["w"] | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLDrawShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLDrawShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLDrawShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLFrameShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLFrameShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLFrameShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLGeoShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLGeoShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLGeoShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLGroupShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLGroupShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLGroupShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLImageShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLImageShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLImageShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLLineShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLLineShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLLineShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLNoteShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLNoteShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLNoteShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLTextShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLTextShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLTextShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLVideoShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLVideoShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLVideoShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLDrawShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLDrawShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLDrawShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLFrameShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLFrameShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLFrameShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLGeoShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLGeoShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLGeoShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLGroupShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLGroupShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLGroupShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLImageShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLImageShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLImageShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLLineShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLLineShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLLineShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLNoteShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLNoteShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLNoteShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLTextShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLTextShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLTextShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLVideoShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLVideoShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLVideoShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLDrawShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLDrawShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLDrawShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLFrameShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLFrameShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLFrameShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLGeoShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLGeoShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLGeoShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLGroupShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLGroupShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLGroupShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLImageShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLImageShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLImageShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLLineShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLLineShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLLineShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLNoteShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLNoteShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLNoteShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLTextShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLTextShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLTextShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLVideoShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLVideoShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLVideoShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLGeoShapeProps & Dimensions & N["props"])["w"]) | any | (({ w: number; h: number; } & any & N["props"])["w"] & ({ w: number; h: number; } & any & N["props"])["w"]) +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>newShapePartial.props : (Partial & ((Partial<(TLArrowShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLBookmarkShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLDrawShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLEmbedShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLFrameShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGeoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGroupShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLHighlightShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLImageShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLLineShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLNoteShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLTextShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLVideoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | undefined) & Dimensions)) | (Partial & ((Partial<(TLArrowShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLBookmarkShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLDrawShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLEmbedShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLFrameShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGeoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGroupShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLHighlightShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLImageShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLLineShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLNoteShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLTextShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLVideoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | undefined) & Dimensions)) | (Partial & ((Partial<(TLArrowShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLBookmarkShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLDrawShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLEmbedShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLFrameShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGeoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGroupShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLHighlightShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLImageShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLLineShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLNoteShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLTextShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLVideoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | undefined) & Dimensions)) | (Partial & ((Partial<(TLArrowShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLBookmarkShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLDrawShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLEmbedShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLFrameShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGeoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGroupShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLHighlightShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLImageShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLLineShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLNoteShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLTextShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLVideoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | undefined) & Dimensions)) | (Partial & ((Partial<(TLArrowShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLBookmarkShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLDrawShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLEmbedShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLFrameShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGeoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGroupShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLHighlightShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLImageShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLLineShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLNoteShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLTextShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLVideoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | undefined) & Dimensions)) | (Partial & ((Partial<(TLArrowShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLBookmarkShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLDrawShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLEmbedShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLFrameShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGeoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGroupShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLHighlightShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLImageShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLLineShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLNoteShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLTextShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLVideoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | undefined) & Dimensions)) | (Partial & ((Partial<(TLArrowShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLBookmarkShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLDrawShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLEmbedShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLFrameShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGeoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGroupShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLHighlightShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLImageShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLLineShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLNoteShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLTextShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLVideoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | undefined) & Dimensions)) | (Partial & ((Partial<(TLArrowShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLBookmarkShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLDrawShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLEmbedShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLFrameShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGeoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGroupShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLHighlightShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLImageShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLLineShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLNoteShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLTextShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLVideoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | undefined) & Dimensions)) | (Partial & ((Partial<(TLArrowShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLBookmarkShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLDrawShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLEmbedShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLFrameShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGeoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGroupShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLHighlightShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLImageShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLLineShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLNoteShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLTextShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLVideoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | undefined) & Dimensions)) | (Partial & ((Partial<(TLArrowShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLBookmarkShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLDrawShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLEmbedShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLFrameShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGeoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGroupShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLHighlightShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLImageShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLLineShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLNoteShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLTextShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLVideoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | undefined) & Dimensions)) | (Partial & ((Partial<(TLArrowShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLBookmarkShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLDrawShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLEmbedShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLFrameShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGeoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGroupShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLHighlightShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLImageShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLLineShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLNoteShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLTextShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLVideoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | undefined) & Dimensions)) | (Partial & ((Partial<(TLArrowShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLBookmarkShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLDrawShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLEmbedShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLFrameShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGeoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGroupShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLHighlightShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLImageShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLLineShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLNoteShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLTextShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLVideoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | undefined) & Dimensions)) | (Partial & ((Partial<(TLArrowShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLBookmarkShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLDrawShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLEmbedShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLFrameShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGeoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGroupShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLHighlightShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLImageShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLLineShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLNoteShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLTextShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLVideoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | undefined) & Dimensions)) | (Partial & ((Partial<(TLArrowShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLBookmarkShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLDrawShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLEmbedShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLFrameShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGeoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGroupShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLHighlightShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLImageShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLLineShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLNoteShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLTextShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLVideoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | undefined) & Dimensions)) | (Partial & ((Partial<(TLArrowShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLBookmarkShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLDrawShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLEmbedShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLFrameShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGeoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGroupShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLHighlightShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLImageShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLLineShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLNoteShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLTextShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLVideoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | undefined) & Dimensions)) | (Partial & ((Partial<(TLArrowShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLBookmarkShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLDrawShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLEmbedShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLFrameShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGeoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGroupShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLHighlightShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLImageShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLLineShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLNoteShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLTextShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLVideoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | undefined) & Dimensions)) | (Partial & ((Partial<(TLArrowShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLBookmarkShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLDrawShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLEmbedShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLFrameShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGeoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGroupShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLHighlightShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLImageShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLLineShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLNoteShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLTextShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLVideoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | undefined) & Dimensions)) | (Partial & ((Partial<(TLArrowShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLBookmarkShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLDrawShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLEmbedShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLFrameShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGeoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGroupShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLHighlightShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLImageShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLLineShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLNoteShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLTextShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLVideoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | undefined) & Dimensions)) | (Partial & ((Partial<(TLArrowShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLBookmarkShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLDrawShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLEmbedShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLFrameShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGeoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGroupShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLHighlightShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLImageShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLLineShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLNoteShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLTextShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLVideoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | undefined) & Dimensions)) | (Partial & ((Partial<(TLArrowShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLBookmarkShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLDrawShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLEmbedShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLFrameShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGeoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGroupShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLHighlightShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLImageShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLLineShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLNoteShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLTextShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLVideoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | undefined) & Dimensions)) | (Partial & ((Partial<(TLArrowShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLBookmarkShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLDrawShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLEmbedShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLFrameShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGeoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGroupShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLHighlightShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLImageShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLLineShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLNoteShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLTextShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLVideoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | undefined) & Dimensions)) | (Partial & ((Partial<(TLArrowShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLBookmarkShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLDrawShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLEmbedShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLFrameShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGeoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGroupShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLHighlightShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLImageShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLLineShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLNoteShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLTextShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLVideoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | undefined) & Dimensions)) | (Partial & ((Partial<(TLArrowShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLBookmarkShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLDrawShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLEmbedShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLFrameShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGeoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGroupShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLHighlightShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLImageShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLLineShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLNoteShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLTextShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLVideoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | undefined) & Dimensions)) | (Partial & ((Partial<(TLArrowShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLBookmarkShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLDrawShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLEmbedShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLFrameShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGeoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGroupShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLHighlightShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLImageShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLLineShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLNoteShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLTextShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLVideoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | undefined) & Dimensions)) | (Partial & ((Partial<(TLArrowShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLBookmarkShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLDrawShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLEmbedShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLFrameShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGeoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGroupShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLHighlightShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLImageShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLLineShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLNoteShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLTextShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLVideoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | undefined) & Dimensions)) | (Partial & ((Partial<(TLArrowShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLBookmarkShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLDrawShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLEmbedShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLFrameShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGeoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGroupShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLHighlightShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLImageShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLLineShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLNoteShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLTextShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLVideoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | undefined) & Dimensions)) | (Partial & ((Partial<(TLArrowShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLBookmarkShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLDrawShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLEmbedShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLFrameShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGeoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGroupShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLHighlightShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLImageShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLLineShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLNoteShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLTextShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLVideoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | undefined) & Dimensions)) | (Partial & ((Partial<(TLArrowShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLBookmarkShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLDrawShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLEmbedShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLFrameShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGeoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGroupShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLHighlightShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLImageShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLLineShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLNoteShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLTextShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLVideoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | undefined) & Dimensions)) | (Partial & ((Partial<(TLArrowShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLBookmarkShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLDrawShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLEmbedShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLFrameShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGeoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGroupShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLHighlightShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLImageShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLLineShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLNoteShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLTextShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLVideoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | undefined) & Dimensions)) | (Partial & ((Partial<(TLArrowShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLBookmarkShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLDrawShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLEmbedShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLFrameShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGeoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGroupShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLHighlightShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLImageShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLLineShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLNoteShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLTextShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLVideoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | undefined) & Dimensions)) | (Partial & ((Partial<(TLArrowShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLBookmarkShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLDrawShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLEmbedShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLFrameShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGeoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGroupShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLHighlightShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLImageShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLLineShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLNoteShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLTextShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLVideoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | undefined) & Dimensions)) | (Partial & ((Partial<(TLArrowShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLBookmarkShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLDrawShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLEmbedShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLFrameShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGeoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGroupShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLHighlightShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLImageShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLLineShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLNoteShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLTextShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLVideoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | undefined) & Dimensions)) | (Partial & ((Partial<(TLArrowShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLBookmarkShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLDrawShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLEmbedShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLFrameShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGeoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGroupShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLHighlightShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLImageShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLLineShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLNoteShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLTextShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLVideoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | undefined) & Dimensions)) | (Partial & ((Partial<(TLArrowShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLBookmarkShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLDrawShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLEmbedShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLFrameShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGeoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGroupShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLHighlightShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLImageShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLLineShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLNoteShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLTextShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLVideoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | undefined) & Dimensions)) | (Partial & ((Partial<(TLArrowShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLBookmarkShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLDrawShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLEmbedShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLFrameShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGeoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGroupShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLHighlightShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLImageShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLLineShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLNoteShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLTextShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLVideoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | undefined) & Dimensions)) | (Partial & ((Partial<(TLArrowShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLBookmarkShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLDrawShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLEmbedShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLFrameShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGeoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGroupShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLHighlightShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLImageShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLLineShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLNoteShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLTextShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLVideoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | undefined) & Dimensions)) | (Partial & ((Partial<(TLArrowShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLBookmarkShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLDrawShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLEmbedShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLFrameShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGeoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGroupShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLHighlightShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLImageShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLLineShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLNoteShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLTextShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLVideoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | undefined) & Dimensions)) | (Partial & ((Partial<(TLArrowShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLBookmarkShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLDrawShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLEmbedShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLFrameShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGeoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGroupShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLHighlightShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLImageShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLLineShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLNoteShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLTextShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLVideoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | undefined) & Dimensions)) | (Partial & ((Partial<(TLArrowShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLBookmarkShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLDrawShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLEmbedShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLFrameShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGeoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGroupShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLHighlightShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLImageShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLLineShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLNoteShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLTextShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLVideoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | undefined) & Dimensions)) | (Partial & ((Partial<(TLArrowShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLBookmarkShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLDrawShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLEmbedShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLFrameShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGeoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGroupShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLHighlightShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLImageShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLLineShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLNoteShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLTextShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLVideoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | undefined) & Dimensions)) | (Partial & ((Partial<(TLArrowShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLBookmarkShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLDrawShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLEmbedShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLFrameShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGeoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGroupShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLHighlightShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLImageShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLLineShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLNoteShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLTextShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLVideoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | undefined) & Dimensions)) | (Partial & ((Partial<(TLArrowShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLBookmarkShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLDrawShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLEmbedShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLFrameShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGeoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGroupShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLHighlightShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLImageShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLLineShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLNoteShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLTextShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLVideoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | undefined) & Dimensions)) | (Partial & ((Partial<(TLArrowShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLBookmarkShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLDrawShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLEmbedShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLFrameShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGeoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGroupShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLHighlightShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLImageShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLLineShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLNoteShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLTextShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLVideoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | undefined) & Dimensions)) | (Partial & ((Partial<(TLArrowShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLBookmarkShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLDrawShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLEmbedShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLFrameShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGeoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGroupShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLHighlightShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLImageShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLLineShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLNoteShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLTextShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLVideoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | undefined) & Dimensions)) | (Partial & ((Partial<(TLArrowShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLBookmarkShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLDrawShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLEmbedShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLFrameShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGeoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGroupShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLHighlightShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLImageShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLLineShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLNoteShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLTextShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLVideoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | undefined) & Dimensions)) | (Partial & ((Partial<(TLArrowShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLBookmarkShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLDrawShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLEmbedShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLFrameShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGeoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGroupShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLHighlightShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLImageShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLLineShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLNoteShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLTextShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLVideoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | undefined) & Dimensions)) | (Partial & ((Partial<(TLArrowShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLBookmarkShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLDrawShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLEmbedShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLFrameShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGeoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGroupShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLHighlightShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLImageShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLLineShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLNoteShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLTextShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLVideoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | undefined) & Dimensions)) | (Partial & ((Partial<(TLArrowShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLBookmarkShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLDrawShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLEmbedShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLFrameShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGeoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGroupShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLHighlightShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLImageShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLLineShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLNoteShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLTextShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLVideoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | undefined) & Dimensions)) | (Partial & ((Partial<(TLArrowShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLBookmarkShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLDrawShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLEmbedShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLFrameShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGeoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGroupShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLHighlightShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLImageShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLLineShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLNoteShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLTextShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLVideoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | undefined) & Dimensions)) | (Partial & ((Partial<(TLArrowShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLBookmarkShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLDrawShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLEmbedShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLFrameShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGeoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGroupShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLHighlightShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLImageShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLLineShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLNoteShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLTextShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLVideoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | undefined) & Dimensions)) | (Partial & ((Partial<(TLArrowShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLBookmarkShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLDrawShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLEmbedShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLFrameShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGeoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGroupShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLHighlightShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLImageShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLLineShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLNoteShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLTextShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLVideoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | undefined) & Dimensions)) | (Partial & ((Partial<(TLArrowShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLBookmarkShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLDrawShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLEmbedShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLFrameShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGeoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGroupShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLHighlightShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLImageShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLLineShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLNoteShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLTextShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLVideoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | undefined) & Dimensions)) | (Partial & ((Partial<(TLArrowShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLBookmarkShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLDrawShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLEmbedShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLFrameShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGeoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGroupShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLHighlightShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLImageShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLLineShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLNoteShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLTextShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLVideoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | undefined) & Dimensions)) | (Partial & ((Partial<(TLArrowShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLBookmarkShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLDrawShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLEmbedShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLFrameShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGeoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGroupShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLHighlightShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLImageShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLLineShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLNoteShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLTextShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLVideoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | undefined) & Dimensions)) | (Partial & ((Partial<(TLArrowShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLBookmarkShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLDrawShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLEmbedShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLFrameShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGeoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGroupShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLHighlightShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLImageShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLLineShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLNoteShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLTextShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLVideoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | undefined) & Dimensions)) | (Partial & ((Partial<(TLArrowShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLBookmarkShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLDrawShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLEmbedShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLFrameShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGeoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGroupShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLHighlightShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLImageShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLLineShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLNoteShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLTextShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLVideoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | undefined) & Dimensions)) | (Partial & ((Partial<(TLArrowShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLBookmarkShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLDrawShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLEmbedShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLFrameShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGeoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGroupShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLHighlightShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLImageShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLLineShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLNoteShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLTextShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLVideoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | undefined) & Dimensions)) | (Partial & ((Partial<(TLArrowShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLBookmarkShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLDrawShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLEmbedShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLFrameShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGeoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGroupShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLHighlightShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLImageShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLLineShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLNoteShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLTextShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLVideoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | undefined) & Dimensions)) | (Partial & ((Partial<(TLArrowShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLBookmarkShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLDrawShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLEmbedShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLFrameShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGeoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGroupShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLHighlightShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLImageShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLLineShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLNoteShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLTextShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLVideoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | undefined) & Dimensions)) | (Partial & ((Partial<(TLArrowShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLBookmarkShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLDrawShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLEmbedShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLFrameShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGeoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGroupShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLHighlightShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLImageShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLLineShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLNoteShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLTextShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLVideoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | undefined) & Dimensions)) | (Partial & ((Partial<(TLArrowShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLBookmarkShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLDrawShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLEmbedShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLFrameShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGeoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGroupShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLHighlightShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLImageShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLLineShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLNoteShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLTextShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLVideoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | undefined) & Dimensions)) | (Partial & ((Partial<(TLArrowShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLBookmarkShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLDrawShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLEmbedShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLFrameShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGeoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGroupShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLHighlightShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLImageShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLLineShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLNoteShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLTextShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLVideoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | undefined) & Dimensions)) | (Partial & ((Partial<(TLArrowShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLBookmarkShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLDrawShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLEmbedShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLFrameShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGeoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGroupShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLHighlightShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLImageShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLLineShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLNoteShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLTextShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLVideoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | undefined) & Dimensions)) | (Partial & ((Partial<(TLArrowShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLBookmarkShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLDrawShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLEmbedShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLFrameShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGeoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGroupShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLHighlightShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLImageShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLLineShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLNoteShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLTextShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLVideoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | undefined) & Dimensions)) | (Partial & ((Partial<(TLArrowShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLBookmarkShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLDrawShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLEmbedShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLFrameShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGeoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGroupShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLHighlightShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLImageShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLLineShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLNoteShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLTextShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLVideoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | undefined) & Dimensions)) | (Partial & ((Partial<(TLArrowShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLBookmarkShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLDrawShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLEmbedShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLFrameShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGeoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGroupShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLHighlightShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLImageShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLLineShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLNoteShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLTextShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLVideoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | undefined) & Dimensions)) | (Partial & ((Partial<(TLArrowShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLBookmarkShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLDrawShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLEmbedShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLFrameShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGeoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGroupShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLHighlightShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLImageShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLLineShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLNoteShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLTextShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLVideoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | undefined) & Dimensions)) | (Partial & ((Partial<(TLArrowShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLBookmarkShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLDrawShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLEmbedShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLFrameShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGeoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGroupShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLHighlightShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLImageShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLLineShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLNoteShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLTextShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLVideoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | undefined) & Dimensions)) | (Partial & ((Partial<(TLArrowShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLBookmarkShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLDrawShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLEmbedShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLFrameShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGeoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGroupShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLHighlightShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLImageShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLLineShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLNoteShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLTextShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLVideoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | undefined) & Dimensions)) | (Partial & ((Partial<(TLArrowShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLBookmarkShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLDrawShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLEmbedShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLFrameShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGeoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGroupShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLHighlightShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLImageShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLLineShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLNoteShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLTextShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLVideoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | undefined) & Dimensions)) | (Partial & ((Partial<(TLArrowShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLBookmarkShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLDrawShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLEmbedShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLFrameShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGeoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGroupShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLHighlightShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLImageShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLLineShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLNoteShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLTextShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLVideoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | undefined) & Dimensions)) | (Partial & ((Partial<(TLArrowShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLBookmarkShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLDrawShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLEmbedShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLFrameShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGeoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGroupShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLHighlightShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLImageShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLLineShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLNoteShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLTextShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLVideoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | undefined) & Dimensions)) | (Partial & ((Partial<(TLArrowShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLBookmarkShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLDrawShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLEmbedShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLFrameShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGeoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGroupShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLHighlightShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLImageShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLLineShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLNoteShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLTextShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLVideoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | undefined) & Dimensions)) | (Partial & ((Partial<(TLArrowShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLBookmarkShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLDrawShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLEmbedShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLFrameShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGeoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGroupShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLHighlightShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLImageShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLLineShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLNoteShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLTextShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLVideoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | undefined) & Dimensions)) | (Partial & ((Partial<(TLArrowShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLBookmarkShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLDrawShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLEmbedShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLFrameShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGeoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGroupShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLHighlightShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLImageShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLLineShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLNoteShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLTextShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLVideoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | undefined) & Dimensions)) | (Partial & ((Partial<(TLArrowShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLBookmarkShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLDrawShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLEmbedShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLFrameShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGeoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGroupShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLHighlightShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLImageShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLLineShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLNoteShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLTextShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLVideoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | undefined) & Dimensions)) | (Partial & ((Partial<(TLArrowShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLBookmarkShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLDrawShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLEmbedShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLFrameShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGeoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGroupShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLHighlightShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLImageShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLLineShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLNoteShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLTextShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLVideoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | undefined) & Dimensions)) | (Partial & ((Partial<(TLArrowShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLBookmarkShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLDrawShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLEmbedShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLFrameShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGeoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGroupShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLHighlightShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLImageShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLLineShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLNoteShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLTextShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLVideoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | undefined) & Dimensions)) | (Partial & ((Partial<(TLArrowShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLBookmarkShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLDrawShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLEmbedShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLFrameShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGeoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGroupShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLHighlightShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLImageShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLLineShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLNoteShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLTextShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLVideoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | undefined) & Dimensions)) | (Partial & ((Partial<(TLArrowShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLBookmarkShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLDrawShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLEmbedShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLFrameShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGeoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGroupShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLHighlightShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLImageShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLLineShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLNoteShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLTextShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLVideoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | undefined) & Dimensions)) | (Partial & ((Partial<(TLArrowShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLBookmarkShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLDrawShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLEmbedShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLFrameShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGeoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGroupShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLHighlightShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLImageShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLLineShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLNoteShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLTextShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLVideoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | undefined) & Dimensions)) | (Partial & ((Partial<(TLArrowShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLBookmarkShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLDrawShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLEmbedShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLFrameShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGeoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGroupShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLHighlightShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLImageShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLLineShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLNoteShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLTextShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLVideoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | undefined) & Dimensions)) | (Partial & ((Partial<(TLArrowShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLBookmarkShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLDrawShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLEmbedShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLFrameShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGeoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGroupShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLHighlightShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLImageShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLLineShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLNoteShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLTextShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLVideoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | undefined) & Dimensions)) | (Partial & ((Partial<(TLArrowShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLBookmarkShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLDrawShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLEmbedShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLFrameShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGeoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGroupShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLHighlightShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLImageShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLLineShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLNoteShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLTextShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLVideoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | undefined) & Dimensions)) | (Partial & ((Partial<(TLArrowShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLBookmarkShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLDrawShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLEmbedShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLFrameShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGeoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGroupShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLHighlightShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLImageShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLLineShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLNoteShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLTextShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLVideoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | undefined) & Dimensions)) | (Partial & ((Partial<(TLArrowShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLBookmarkShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLDrawShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLEmbedShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLFrameShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGeoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGroupShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLHighlightShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLImageShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLLineShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLNoteShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLTextShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLVideoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | undefined) & Dimensions)) | (Partial & ((Partial<(TLArrowShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLBookmarkShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLDrawShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLEmbedShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLFrameShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGeoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGroupShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLHighlightShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLImageShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLLineShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLNoteShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLTextShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLVideoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | undefined) & Dimensions)) | (Partial & ((Partial<(TLArrowShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLBookmarkShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLDrawShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLEmbedShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLFrameShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGeoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGroupShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLHighlightShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLImageShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLLineShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLNoteShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLTextShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLVideoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | undefined) & Dimensions)) | (Partial & ((Partial<(TLArrowShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLBookmarkShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLDrawShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLEmbedShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLFrameShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGeoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGroupShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLHighlightShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLImageShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLLineShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLNoteShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLTextShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLVideoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | undefined) & Dimensions)) | (Partial & ((Partial<(TLArrowShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLBookmarkShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLDrawShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLEmbedShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLFrameShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGeoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGroupShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLHighlightShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLImageShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLLineShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLNoteShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLTextShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLVideoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | undefined) & Dimensions)) | (Partial & ((Partial<(TLArrowShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLBookmarkShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | any | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | any | undefined) & Dimensions)) | any | (Partial & ((Partial | any | undefined) & Dimensions)) +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>newShapePartial : (({ id: TLShapeId; meta?: Partial | undefined; props?: Partial<(TLArrowShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | undefined; type: "arrow"; } & Partial>) | ({ id: TLShapeId; meta?: Partial | undefined; props?: Partial<(TLBookmarkShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | undefined; type: "bookmark"; } & Partial>) | ({ id: TLShapeId; meta?: Partial | undefined; props?: Partial<(TLDrawShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | undefined; type: "draw"; } & Partial>) | ({ id: TLShapeId; meta?: Partial | undefined; props?: Partial<(TLEmbedShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | undefined; type: "embed"; } & Partial>) | ({ id: TLShapeId; meta?: Partial | undefined; props?: Partial<(TLFrameShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | undefined; type: "frame"; } & Partial>) | ({ id: TLShapeId; meta?: Partial | undefined; props?: Partial<(TLGeoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | undefined; type: "geo"; } & Partial>) | ({ id: TLShapeId; meta?: Partial | undefined; props?: Partial<(TLGroupShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | undefined; type: "group"; } & Partial>) | ({ id: TLShapeId; meta?: Partial | undefined; props?: Partial<(TLHighlightShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | undefined; type: "highlight"; } & Partial>) | ({ id: TLShapeId; meta?: Partial | undefined; props?: Partial<(TLImageShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | undefined; type: "image"; } & Partial>) | ({ id: TLShapeId; meta?: Partial | undefined; props?: Partial<(TLLineShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | undefined; type: "line"; } & Partial>) | ({ id: TLShapeId; meta?: Partial | undefined; props?: Partial<(TLNoteShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | undefined; type: "note"; } & Partial>) | ({ id: TLShapeId; meta?: Partial | undefined; props?: Partial<(TLTextShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | undefined; type: "text"; } & Partial>) | ({ id: TLShapeId; meta?: Partial | undefined; props?: Partial<(TLVideoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | undefined; type: "video"; } & Partial>) | ({ id: TLShapeId; meta?: Partial | undefined; props?: Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | undefined; type: "html"; } & Partial & { props: (TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions; } & { props: N["props"] & Dimensions; }, "type" | "meta" | "id" | "props">>) | ({ id: TLShapeId; meta?: Partial | undefined; props?: Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | undefined; type: "container_section"; } & Partial & { props: (TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions; } & { props: N["props"] & Dimensions; }, "type" | "meta" | "id" | "props">>) | ({ id: TLShapeId; meta?: Partial | undefined; props?: Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | undefined; type: "container"; } & Partial & { props: (TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions; } & { props: N["props"] & Dimensions; }, "type" | "meta" | "id" | "props">>)) & { props: TLShapePartial>["props"] & Dimensions; } +> : ^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>props : (Partial & ((Partial<(TLArrowShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLBookmarkShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLDrawShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLEmbedShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLFrameShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGeoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGroupShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLHighlightShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLImageShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLLineShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLNoteShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLTextShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLVideoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | undefined) & Dimensions)) | (Partial & ((Partial<(TLArrowShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLBookmarkShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLDrawShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLEmbedShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLFrameShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGeoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGroupShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLHighlightShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLImageShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLLineShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLNoteShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLTextShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLVideoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | undefined) & Dimensions)) | (Partial & ((Partial<(TLArrowShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLBookmarkShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLDrawShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLEmbedShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLFrameShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGeoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGroupShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLHighlightShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLImageShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLLineShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLNoteShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLTextShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLVideoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | undefined) & Dimensions)) | (Partial & ((Partial<(TLArrowShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLBookmarkShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLDrawShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLEmbedShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLFrameShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGeoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGroupShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLHighlightShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLImageShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLLineShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLNoteShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLTextShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLVideoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | undefined) & Dimensions)) | (Partial & ((Partial<(TLArrowShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLBookmarkShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLDrawShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLEmbedShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLFrameShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGeoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGroupShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLHighlightShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLImageShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLLineShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLNoteShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLTextShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLVideoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | undefined) & Dimensions)) | (Partial & ((Partial<(TLArrowShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLBookmarkShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLDrawShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLEmbedShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLFrameShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGeoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGroupShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLHighlightShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLImageShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLLineShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLNoteShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLTextShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLVideoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | undefined) & Dimensions)) | (Partial & ((Partial<(TLArrowShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLBookmarkShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLDrawShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLEmbedShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLFrameShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGeoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGroupShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLHighlightShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLImageShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLLineShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLNoteShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLTextShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLVideoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | undefined) & Dimensions)) | (Partial & ((Partial<(TLArrowShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLBookmarkShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLDrawShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLEmbedShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLFrameShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGeoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGroupShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLHighlightShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLImageShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLLineShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLNoteShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLTextShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLVideoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | undefined) & Dimensions)) | (Partial & ((Partial<(TLArrowShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLBookmarkShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLDrawShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLEmbedShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLFrameShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGeoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGroupShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLHighlightShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLImageShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLLineShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLNoteShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLTextShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLVideoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | undefined) & Dimensions)) | (Partial & ((Partial<(TLArrowShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLBookmarkShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLDrawShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLEmbedShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLFrameShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGeoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGroupShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLHighlightShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLImageShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLLineShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLNoteShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLTextShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLVideoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | undefined) & Dimensions)) | (Partial & ((Partial<(TLArrowShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLBookmarkShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLDrawShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLEmbedShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLFrameShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGeoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGroupShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLHighlightShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLImageShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLLineShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLNoteShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLTextShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLVideoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | undefined) & Dimensions)) | (Partial & ((Partial<(TLArrowShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLBookmarkShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLDrawShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLEmbedShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLFrameShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGeoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGroupShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLHighlightShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLImageShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLLineShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLNoteShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLTextShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLVideoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | undefined) & Dimensions)) | (Partial & ((Partial<(TLArrowShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLBookmarkShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLDrawShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLEmbedShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLFrameShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGeoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGroupShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLHighlightShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLImageShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLLineShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLNoteShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLTextShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLVideoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | undefined) & Dimensions)) | (Partial & ((Partial<(TLArrowShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLBookmarkShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLDrawShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLEmbedShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLFrameShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGeoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGroupShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLHighlightShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLImageShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLLineShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLNoteShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLTextShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLVideoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | undefined) & Dimensions)) | (Partial & ((Partial<(TLArrowShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLBookmarkShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLDrawShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLEmbedShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLFrameShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGeoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGroupShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLHighlightShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLImageShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLLineShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLNoteShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLTextShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLVideoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | undefined) & Dimensions)) | (Partial & ((Partial<(TLArrowShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLBookmarkShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLDrawShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLEmbedShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLFrameShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGeoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGroupShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLHighlightShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLImageShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLLineShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLNoteShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLTextShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLVideoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | undefined) & Dimensions)) | (Partial & ((Partial<(TLArrowShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLBookmarkShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLDrawShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLEmbedShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLFrameShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGeoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGroupShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLHighlightShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLImageShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLLineShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLNoteShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLTextShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLVideoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | undefined) & Dimensions)) | (Partial & ((Partial<(TLArrowShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLBookmarkShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLDrawShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLEmbedShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLFrameShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGeoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGroupShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLHighlightShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLImageShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLLineShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLNoteShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLTextShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLVideoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | undefined) & Dimensions)) | (Partial & ((Partial<(TLArrowShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLBookmarkShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLDrawShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLEmbedShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLFrameShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGeoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGroupShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLHighlightShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLImageShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLLineShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLNoteShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLTextShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLVideoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | undefined) & Dimensions)) | (Partial & ((Partial<(TLArrowShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLBookmarkShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLDrawShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLEmbedShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLFrameShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGeoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGroupShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLHighlightShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLImageShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLLineShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLNoteShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLTextShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLVideoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | undefined) & Dimensions)) | (Partial & ((Partial<(TLArrowShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLBookmarkShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLDrawShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLEmbedShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLFrameShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGeoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGroupShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLHighlightShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLImageShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLLineShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLNoteShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLTextShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLVideoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | undefined) & Dimensions)) | (Partial & ((Partial<(TLArrowShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLBookmarkShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLDrawShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLEmbedShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLFrameShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGeoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGroupShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLHighlightShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLImageShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLLineShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLNoteShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLTextShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLVideoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | undefined) & Dimensions)) | (Partial & ((Partial<(TLArrowShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLBookmarkShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLDrawShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLEmbedShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLFrameShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGeoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGroupShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLHighlightShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLImageShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLLineShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLNoteShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLTextShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLVideoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | undefined) & Dimensions)) | (Partial & ((Partial<(TLArrowShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLBookmarkShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLDrawShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLEmbedShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLFrameShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGeoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGroupShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLHighlightShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLImageShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLLineShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLNoteShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLTextShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLVideoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | undefined) & Dimensions)) | (Partial & ((Partial<(TLArrowShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLBookmarkShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLDrawShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLEmbedShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLFrameShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGeoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGroupShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLHighlightShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLImageShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLLineShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLNoteShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLTextShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLVideoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | undefined) & Dimensions)) | (Partial & ((Partial<(TLArrowShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLBookmarkShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLDrawShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLEmbedShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLFrameShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGeoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGroupShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLHighlightShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLImageShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLLineShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLNoteShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLTextShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLVideoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | undefined) & Dimensions)) | (Partial & ((Partial<(TLArrowShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLBookmarkShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLDrawShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLEmbedShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLFrameShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGeoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGroupShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLHighlightShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLImageShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLLineShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLNoteShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLTextShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLVideoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | undefined) & Dimensions)) | (Partial & ((Partial<(TLArrowShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLBookmarkShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLDrawShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLEmbedShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLFrameShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGeoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGroupShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLHighlightShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLImageShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLLineShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLNoteShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLTextShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLVideoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | undefined) & Dimensions)) | (Partial & ((Partial<(TLArrowShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLBookmarkShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLDrawShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLEmbedShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLFrameShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGeoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGroupShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLHighlightShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLImageShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLLineShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLNoteShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLTextShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLVideoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | undefined) & Dimensions)) | (Partial & ((Partial<(TLArrowShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLBookmarkShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLDrawShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLEmbedShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLFrameShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGeoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGroupShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLHighlightShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLImageShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLLineShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLNoteShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLTextShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLVideoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | undefined) & Dimensions)) | (Partial & ((Partial<(TLArrowShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLBookmarkShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLDrawShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLEmbedShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLFrameShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGeoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGroupShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLHighlightShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLImageShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLLineShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLNoteShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLTextShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLVideoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | undefined) & Dimensions)) | (Partial & ((Partial<(TLArrowShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLBookmarkShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLDrawShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLEmbedShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLFrameShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGeoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGroupShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLHighlightShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLImageShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLLineShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLNoteShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLTextShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLVideoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | undefined) & Dimensions)) | (Partial & ((Partial<(TLArrowShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLBookmarkShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLDrawShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLEmbedShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLFrameShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGeoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGroupShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLHighlightShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLImageShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLLineShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLNoteShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLTextShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLVideoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | undefined) & Dimensions)) | (Partial & ((Partial<(TLArrowShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLBookmarkShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLDrawShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLEmbedShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLFrameShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGeoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGroupShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLHighlightShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLImageShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLLineShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLNoteShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLTextShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLVideoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | undefined) & Dimensions)) | (Partial & ((Partial<(TLArrowShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLBookmarkShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLDrawShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLEmbedShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLFrameShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGeoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGroupShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLHighlightShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLImageShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLLineShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLNoteShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLTextShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLVideoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | undefined) & Dimensions)) | (Partial & ((Partial<(TLArrowShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLBookmarkShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLDrawShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLEmbedShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLFrameShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGeoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGroupShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLHighlightShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLImageShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLLineShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLNoteShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLTextShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLVideoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | undefined) & Dimensions)) | (Partial & ((Partial<(TLArrowShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLBookmarkShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLDrawShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLEmbedShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLFrameShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGeoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGroupShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLHighlightShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLImageShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLLineShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLNoteShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLTextShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLVideoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | undefined) & Dimensions)) | (Partial & ((Partial<(TLArrowShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLBookmarkShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLDrawShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLEmbedShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLFrameShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGeoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGroupShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLHighlightShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLImageShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLLineShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLNoteShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLTextShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLVideoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | undefined) & Dimensions)) | (Partial & ((Partial<(TLArrowShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLBookmarkShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLDrawShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLEmbedShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLFrameShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGeoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGroupShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLHighlightShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLImageShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLLineShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLNoteShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLTextShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLVideoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | undefined) & Dimensions)) | (Partial & ((Partial<(TLArrowShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLBookmarkShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLDrawShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLEmbedShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLFrameShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGeoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGroupShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLHighlightShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLImageShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLLineShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLNoteShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLTextShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLVideoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | undefined) & Dimensions)) | (Partial & ((Partial<(TLArrowShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLBookmarkShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLDrawShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLEmbedShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLFrameShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGeoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGroupShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLHighlightShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLImageShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLLineShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLNoteShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLTextShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLVideoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | undefined) & Dimensions)) | (Partial & ((Partial<(TLArrowShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLBookmarkShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLDrawShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLEmbedShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLFrameShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGeoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGroupShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLHighlightShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLImageShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLLineShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLNoteShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLTextShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLVideoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | undefined) & Dimensions)) | (Partial & ((Partial<(TLArrowShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLBookmarkShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLDrawShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLEmbedShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLFrameShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGeoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGroupShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLHighlightShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLImageShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLLineShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLNoteShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLTextShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLVideoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | undefined) & Dimensions)) | (Partial & ((Partial<(TLArrowShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLBookmarkShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLDrawShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLEmbedShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLFrameShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGeoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGroupShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLHighlightShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLImageShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLLineShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLNoteShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLTextShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLVideoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | undefined) & Dimensions)) | (Partial & ((Partial<(TLArrowShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLBookmarkShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLDrawShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLEmbedShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLFrameShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGeoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGroupShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLHighlightShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLImageShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLLineShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLNoteShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLTextShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLVideoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | undefined) & Dimensions)) | (Partial & ((Partial<(TLArrowShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLBookmarkShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLDrawShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLEmbedShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLFrameShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGeoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGroupShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLHighlightShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLImageShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLLineShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLNoteShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLTextShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLVideoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | undefined) & Dimensions)) | (Partial & ((Partial<(TLArrowShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLBookmarkShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLDrawShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLEmbedShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLFrameShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGeoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGroupShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLHighlightShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLImageShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLLineShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLNoteShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLTextShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLVideoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | undefined) & Dimensions)) | (Partial & ((Partial<(TLArrowShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLBookmarkShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLDrawShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLEmbedShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLFrameShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGeoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGroupShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLHighlightShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLImageShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLLineShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLNoteShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLTextShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLVideoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | undefined) & Dimensions)) | (Partial & ((Partial<(TLArrowShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLBookmarkShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLDrawShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLEmbedShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLFrameShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGeoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGroupShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLHighlightShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLImageShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLLineShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLNoteShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLTextShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLVideoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | undefined) & Dimensions)) | (Partial & ((Partial<(TLArrowShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLBookmarkShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLDrawShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLEmbedShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLFrameShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGeoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGroupShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLHighlightShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLImageShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLLineShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLNoteShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLTextShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLVideoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | undefined) & Dimensions)) | (Partial & ((Partial<(TLArrowShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLBookmarkShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLDrawShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLEmbedShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLFrameShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGeoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGroupShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLHighlightShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLImageShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLLineShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLNoteShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLTextShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLVideoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | undefined) & Dimensions)) | (Partial & ((Partial<(TLArrowShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLBookmarkShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLDrawShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLEmbedShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLFrameShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGeoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGroupShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLHighlightShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLImageShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLLineShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLNoteShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLTextShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLVideoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | undefined) & Dimensions)) | (Partial & ((Partial<(TLArrowShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLBookmarkShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLDrawShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLEmbedShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLFrameShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGeoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGroupShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLHighlightShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLImageShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLLineShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLNoteShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLTextShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLVideoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | undefined) & Dimensions)) | (Partial & ((Partial<(TLArrowShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLBookmarkShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLDrawShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLEmbedShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLFrameShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGeoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGroupShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLHighlightShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLImageShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLLineShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLNoteShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLTextShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLVideoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | undefined) & Dimensions)) | (Partial & ((Partial<(TLArrowShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLBookmarkShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLDrawShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLEmbedShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLFrameShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGeoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGroupShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLHighlightShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLImageShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLLineShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLNoteShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLTextShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLVideoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | undefined) & Dimensions)) | (Partial & ((Partial<(TLArrowShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLBookmarkShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLDrawShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLEmbedShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLFrameShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGeoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGroupShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLHighlightShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLImageShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLLineShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLNoteShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLTextShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLVideoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | undefined) & Dimensions)) | (Partial & ((Partial<(TLArrowShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLBookmarkShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLDrawShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLEmbedShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLFrameShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGeoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGroupShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLHighlightShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLImageShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLLineShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLNoteShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLTextShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLVideoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | undefined) & Dimensions)) | (Partial & ((Partial<(TLArrowShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLBookmarkShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLDrawShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLEmbedShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLFrameShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGeoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGroupShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLHighlightShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLImageShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLLineShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLNoteShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLTextShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLVideoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | undefined) & Dimensions)) | (Partial & ((Partial<(TLArrowShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLBookmarkShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLDrawShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLEmbedShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLFrameShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGeoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGroupShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLHighlightShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLImageShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLLineShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLNoteShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLTextShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLVideoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | undefined) & Dimensions)) | (Partial & ((Partial<(TLArrowShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLBookmarkShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLDrawShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLEmbedShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLFrameShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGeoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGroupShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLHighlightShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLImageShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLLineShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLNoteShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLTextShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLVideoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | undefined) & Dimensions)) | (Partial & ((Partial<(TLArrowShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLBookmarkShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLDrawShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLEmbedShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLFrameShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGeoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGroupShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLHighlightShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLImageShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLLineShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLNoteShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLTextShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLVideoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | undefined) & Dimensions)) | (Partial & ((Partial<(TLArrowShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLBookmarkShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLDrawShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLEmbedShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLFrameShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGeoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGroupShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLHighlightShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLImageShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLLineShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLNoteShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLTextShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLVideoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | undefined) & Dimensions)) | (Partial & ((Partial<(TLArrowShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLBookmarkShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLDrawShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLEmbedShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLFrameShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGeoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGroupShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLHighlightShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLImageShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLLineShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLNoteShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLTextShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLVideoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | undefined) & Dimensions)) | (Partial & ((Partial<(TLArrowShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLBookmarkShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLDrawShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLEmbedShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLFrameShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGeoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGroupShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLHighlightShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLImageShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLLineShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLNoteShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLTextShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLVideoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | undefined) & Dimensions)) | (Partial & ((Partial<(TLArrowShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLBookmarkShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLDrawShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLEmbedShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLFrameShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGeoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGroupShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLHighlightShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLImageShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLLineShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLNoteShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLTextShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLVideoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | undefined) & Dimensions)) | (Partial & ((Partial<(TLArrowShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLBookmarkShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLDrawShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLEmbedShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLFrameShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGeoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGroupShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLHighlightShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLImageShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLLineShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLNoteShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLTextShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLVideoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | undefined) & Dimensions)) | (Partial & ((Partial<(TLArrowShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLBookmarkShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLDrawShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLEmbedShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLFrameShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGeoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGroupShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLHighlightShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLImageShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLLineShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLNoteShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLTextShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLVideoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | undefined) & Dimensions)) | (Partial & ((Partial<(TLArrowShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLBookmarkShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLDrawShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLEmbedShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLFrameShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGeoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGroupShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLHighlightShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLImageShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLLineShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLNoteShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLTextShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLVideoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | undefined) & Dimensions)) | (Partial & ((Partial<(TLArrowShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLBookmarkShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLDrawShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLEmbedShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLFrameShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGeoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGroupShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLHighlightShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLImageShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLLineShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLNoteShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLTextShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLVideoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | undefined) & Dimensions)) | (Partial & ((Partial<(TLArrowShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLBookmarkShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLDrawShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLEmbedShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLFrameShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGeoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGroupShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLHighlightShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLImageShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLLineShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLNoteShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLTextShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLVideoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | undefined) & Dimensions)) | (Partial & ((Partial<(TLArrowShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLBookmarkShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLDrawShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLEmbedShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLFrameShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGeoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGroupShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLHighlightShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLImageShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLLineShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLNoteShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLTextShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLVideoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | undefined) & Dimensions)) | (Partial & ((Partial<(TLArrowShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLBookmarkShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLDrawShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLEmbedShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLFrameShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGeoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGroupShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLHighlightShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLImageShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLLineShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLNoteShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLTextShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLVideoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | undefined) & Dimensions)) | (Partial & ((Partial<(TLArrowShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLBookmarkShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLDrawShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLEmbedShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLFrameShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGeoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGroupShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLHighlightShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLImageShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLLineShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLNoteShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLTextShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLVideoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | undefined) & Dimensions)) | (Partial & ((Partial<(TLArrowShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLBookmarkShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLDrawShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLEmbedShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLFrameShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGeoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGroupShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLHighlightShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLImageShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLLineShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLNoteShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLTextShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLVideoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | undefined) & Dimensions)) | (Partial & ((Partial<(TLArrowShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLBookmarkShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLDrawShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLEmbedShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLFrameShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGeoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGroupShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLHighlightShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLImageShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLLineShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLNoteShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLTextShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLVideoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | undefined) & Dimensions)) | (Partial & ((Partial<(TLArrowShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLBookmarkShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLDrawShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLEmbedShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLFrameShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGeoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGroupShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLHighlightShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLImageShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLLineShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLNoteShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLTextShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLVideoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | undefined) & Dimensions)) | (Partial & ((Partial<(TLArrowShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLBookmarkShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLDrawShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLEmbedShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLFrameShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGeoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGroupShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLHighlightShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLImageShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLLineShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLNoteShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLTextShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLVideoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | undefined) & Dimensions)) | (Partial & ((Partial<(TLArrowShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLBookmarkShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLDrawShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLEmbedShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLFrameShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGeoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGroupShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLHighlightShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLImageShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLLineShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLNoteShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLTextShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLVideoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | undefined) & Dimensions)) | (Partial & ((Partial<(TLArrowShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLBookmarkShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLDrawShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLEmbedShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLFrameShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGeoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGroupShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLHighlightShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLImageShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLLineShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLNoteShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLTextShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLVideoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | undefined) & Dimensions)) | (Partial & ((Partial<(TLArrowShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLBookmarkShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLDrawShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLEmbedShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLFrameShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGeoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGroupShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLHighlightShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLImageShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLLineShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLNoteShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLTextShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLVideoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | undefined) & Dimensions)) | (Partial & ((Partial<(TLArrowShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLBookmarkShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLDrawShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLEmbedShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLFrameShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGeoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGroupShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLHighlightShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLImageShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLLineShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLNoteShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLTextShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLVideoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | undefined) & Dimensions)) | (Partial & ((Partial<(TLArrowShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLBookmarkShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLDrawShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLEmbedShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLFrameShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGeoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGroupShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLHighlightShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLImageShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLLineShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLNoteShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLTextShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLVideoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | undefined) & Dimensions)) | (Partial & ((Partial<(TLArrowShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLBookmarkShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLDrawShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLEmbedShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLFrameShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGeoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGroupShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLHighlightShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLImageShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLLineShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLNoteShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLTextShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLVideoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | undefined) & Dimensions)) | (Partial & ((Partial<(TLArrowShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLBookmarkShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLDrawShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLEmbedShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLFrameShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGeoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGroupShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLHighlightShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLImageShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLLineShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLNoteShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLTextShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLVideoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | undefined) & Dimensions)) | (Partial & ((Partial<(TLArrowShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLBookmarkShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLDrawShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLEmbedShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLFrameShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGeoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGroupShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLHighlightShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLImageShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLLineShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLNoteShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLTextShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLVideoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | undefined) & Dimensions)) | (Partial & ((Partial<(TLArrowShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLBookmarkShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLDrawShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLEmbedShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLFrameShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGeoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGroupShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLHighlightShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLImageShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLLineShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLNoteShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLTextShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLVideoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | undefined) & Dimensions)) | (Partial & ((Partial<(TLArrowShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLBookmarkShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLDrawShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLEmbedShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLFrameShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGeoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGroupShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLHighlightShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLImageShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLLineShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLNoteShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLTextShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLVideoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | undefined) & Dimensions)) | (Partial & ((Partial<(TLArrowShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLBookmarkShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLDrawShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLEmbedShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLFrameShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGeoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGroupShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLHighlightShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLImageShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLLineShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLNoteShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLTextShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLVideoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | undefined) & Dimensions)) | (Partial & ((Partial<(TLArrowShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLBookmarkShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLDrawShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLEmbedShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLFrameShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGeoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGroupShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLHighlightShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLImageShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLLineShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLNoteShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLTextShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLVideoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | undefined) & Dimensions)) | (Partial & ((Partial<(TLArrowShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLBookmarkShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLDrawShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLEmbedShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLFrameShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGeoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLGroupShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLHighlightShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLImageShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLLineShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLNoteShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLTextShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLVideoShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<({ w: number; h: number; } & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | undefined) & Dimensions)) | (Partial & ((Partial<(TLArrowShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | TLImageShapeProps | TLLineShapeProps | TLNoteShapeProps | TLTextShapeProps | TLVideoShapeProps | { w: number; h: number; } | { w: number; h: number; } | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | Partial<(TLBookmarkShapeProps & ((TLArrowShapeProps | TLBookmarkShapeProps | TLDrawShapeProps | TLEmbedShapeProps | TLFrameShapeProps | TLGeoShapeProps | TLGroupShapeProps | TLHighlightShapeProps | any | { w: number; h: number; }) & Dimensions)) & N["props"] & Dimensions> | any | undefined) & Dimensions)) | any | (Partial & ((Partial | any | undefined) & Dimensions)) +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>w : (TLArrowShapeProps & Dimensions & N["props"])["w"] | (TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] | (TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] | (TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] | (TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] | (TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] | (TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] | (TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] | (TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] | (TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] | (TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] | (TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] | (TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] | (TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] | (TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] | (TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] | (TLBookmarkShapeProps & Dimensions & N["props"])["w"] | (TLBookmarkShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"] | (TLBookmarkShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] | (TLBookmarkShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] | (TLBookmarkShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] | (TLBookmarkShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] | (TLBookmarkShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] | (TLBookmarkShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] | (TLBookmarkShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] | (TLBookmarkShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] | (TLBookmarkShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] | (TLBookmarkShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] | (TLBookmarkShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] | (TLBookmarkShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] | (TLBookmarkShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] | (TLBookmarkShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] | (TLDrawShapeProps & Dimensions & N["props"])["w"] | (TLDrawShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"] | (TLDrawShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] | (TLDrawShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] | (TLDrawShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] | (TLDrawShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] | (TLDrawShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] | (TLDrawShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] | (TLDrawShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] | (TLDrawShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] | (TLDrawShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] | (TLDrawShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] | (TLDrawShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] | (TLDrawShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] | (TLDrawShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] | (TLDrawShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] | (TLEmbedShapeProps & Dimensions & N["props"])["w"] | (TLEmbedShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"] | (TLEmbedShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] | (TLEmbedShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] | (TLEmbedShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] | (TLEmbedShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] | (TLEmbedShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] | (TLEmbedShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] | (TLEmbedShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] | (TLEmbedShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] | (TLEmbedShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] | (TLEmbedShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] | (TLEmbedShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] | (TLEmbedShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] | (TLEmbedShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] | (TLEmbedShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] | (TLFrameShapeProps & Dimensions & N["props"])["w"] | (TLFrameShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"] | (TLFrameShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] | (TLFrameShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] | (TLFrameShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] | (TLFrameShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] | (TLFrameShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] | (TLFrameShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] | (TLFrameShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] | (TLFrameShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] | (TLFrameShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] | (TLFrameShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] | (TLFrameShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] | (TLFrameShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] | (TLFrameShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] | (TLFrameShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] | (TLGeoShapeProps & Dimensions & N["props"])["w"] | (TLGeoShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"] | (TLGeoShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] | (TLGeoShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] | (TLGeoShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] | (TLGeoShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] | (TLGeoShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] | (TLGeoShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] | (TLGeoShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] | (TLGeoShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] | (TLGeoShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] | (TLGeoShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] | (TLGeoShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] | (TLGeoShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] | (TLGeoShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] | (TLGeoShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] | (TLGroupShapeProps & Dimensions & N["props"])["w"] | (TLGroupShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"] | (TLGroupShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] | (TLGroupShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] | (TLGroupShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] | (TLGroupShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] | (TLGroupShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] | (TLGroupShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] | (TLGroupShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] | (TLGroupShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] | (TLGroupShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] | (TLGroupShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] | (TLGroupShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] | (TLGroupShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] | (TLGroupShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] | (TLGroupShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] | (TLHighlightShapeProps & Dimensions & N["props"])["w"] | (TLHighlightShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"] | (TLHighlightShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] | (TLHighlightShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] | (TLHighlightShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] | (TLHighlightShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] | (TLHighlightShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] | (TLHighlightShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] | (TLHighlightShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] | (TLHighlightShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] | (TLHighlightShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] | (TLHighlightShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] | (TLHighlightShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] | (TLHighlightShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] | (TLHighlightShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] | (TLHighlightShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] | (TLImageShapeProps & Dimensions & N["props"])["w"] | (TLImageShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"] | (TLImageShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] | (TLImageShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] | (TLImageShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] | (TLImageShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] | (TLImageShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] | (TLImageShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] | (TLImageShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] | (TLImageShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] | (TLImageShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] | (TLImageShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] | (TLImageShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] | (TLImageShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] | (TLImageShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] | (TLImageShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] | (TLLineShapeProps & Dimensions & N["props"])["w"] | (TLLineShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"] | (TLLineShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] | (TLLineShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] | (TLLineShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] | (TLLineShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] | (TLLineShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] | (TLLineShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] | (TLLineShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] | (TLLineShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] | (TLLineShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] | (TLLineShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] | (TLLineShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] | (TLLineShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] | (TLLineShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] | (TLLineShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] | (TLNoteShapeProps & Dimensions & N["props"])["w"] | (TLNoteShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"] | (TLNoteShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] | (TLNoteShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] | (TLNoteShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] | (TLNoteShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] | (TLNoteShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] | (TLNoteShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] | (TLNoteShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] | (TLNoteShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] | (TLNoteShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] | (TLNoteShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] | (TLNoteShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] | (TLNoteShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] | (TLNoteShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] | (TLNoteShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] | (TLTextShapeProps & Dimensions & N["props"])["w"] | (TLTextShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"] | (TLTextShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] | (TLTextShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] | (TLTextShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] | (TLTextShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] | (TLTextShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] | (TLTextShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] | (TLTextShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] | (TLTextShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] | (TLTextShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] | (TLTextShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] | (TLTextShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] | (TLTextShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] | (TLTextShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] | (TLTextShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] | (TLVideoShapeProps & Dimensions & N["props"])["w"] | (TLVideoShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"] | (TLVideoShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] | (TLVideoShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] | (TLVideoShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] | (TLVideoShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] | (TLVideoShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] | (TLVideoShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] | (TLVideoShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] | (TLVideoShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] | (TLVideoShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] | (TLVideoShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] | (TLVideoShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] | (TLVideoShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] | (TLVideoShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] | (TLVideoShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] | ({ w: number; h: number; } & Dimensions & N["props"])["w"] | ({ w: number; h: number; } & TLArrowShapeProps & Dimensions & N["props"])["w"] | ({ w: number; h: number; } & TLBookmarkShapeProps & Dimensions & N["props"])["w"] | ({ w: number; h: number; } & TLDrawShapeProps & Dimensions & N["props"])["w"] | ({ w: number; h: number; } & TLEmbedShapeProps & Dimensions & N["props"])["w"] | ({ w: number; h: number; } & TLFrameShapeProps & Dimensions & N["props"])["w"] | ({ w: number; h: number; } & TLGeoShapeProps & Dimensions & N["props"])["w"] | ({ w: number; h: number; } & TLGroupShapeProps & Dimensions & N["props"])["w"] | ({ w: number; h: number; } & TLHighlightShapeProps & Dimensions & N["props"])["w"] | ({ w: number; h: number; } & TLImageShapeProps & Dimensions & N["props"])["w"] | ({ w: number; h: number; } & TLLineShapeProps & Dimensions & N["props"])["w"] | ({ w: number; h: number; } & TLNoteShapeProps & Dimensions & N["props"])["w"] | ({ w: number; h: number; } & TLTextShapeProps & Dimensions & N["props"])["w"] | ({ w: number; h: number; } & TLVideoShapeProps & Dimensions & N["props"])["w"] | ({ w: number; h: number; } & { w: number; h: number; } & Dimensions & N["props"])["w"] | ({ w: number; h: number; } & { w: number; h: number; } & Dimensions & N["props"])["w"] | ({ w: number; h: number; } & Dimensions & N["props"])["w"] | ({ w: number; h: number; } & TLArrowShapeProps & Dimensions & N["props"])["w"] | ({ w: number; h: number; } & TLBookmarkShapeProps & Dimensions & N["props"])["w"] | ({ w: number; h: number; } & TLDrawShapeProps & Dimensions & N["props"])["w"] | ({ w: number; h: number; } & TLEmbedShapeProps & Dimensions & N["props"])["w"] | ({ w: number; h: number; } & TLFrameShapeProps & Dimensions & N["props"])["w"] | ({ w: number; h: number; } & TLGeoShapeProps & Dimensions & N["props"])["w"] | ({ w: number; h: number; } & TLGroupShapeProps & Dimensions & N["props"])["w"] | ({ w: number; h: number; } & TLHighlightShapeProps & Dimensions & N["props"])["w"] | ({ w: number; h: number; } & TLImageShapeProps & Dimensions & N["props"])["w"] | ({ w: number; h: number; } & TLLineShapeProps & Dimensions & N["props"])["w"] | ({ w: number; h: number; } & TLNoteShapeProps & Dimensions & N["props"])["w"] | ({ w: number; h: number; } & TLTextShapeProps & Dimensions & N["props"])["w"] | ({ w: number; h: number; } & TLVideoShapeProps & Dimensions & N["props"])["w"] | ({ w: number; h: number; } & { w: number; h: number; } & Dimensions & N["props"])["w"] | ({ w: number; h: number; } & { w: number; h: number; } & Dimensions & N["props"])["w"] | ({ w: number; h: number; } & Dimensions & N["props"])["w"] | ({ w: number; h: number; } & TLArrowShapeProps & Dimensions & N["props"])["w"] | ({ w: number; h: number; } & TLBookmarkShapeProps & Dimensions & N["props"])["w"] | ({ w: number; h: number; } & TLDrawShapeProps & Dimensions & N["props"])["w"] | ({ w: number; h: number; } & TLEmbedShapeProps & Dimensions & N["props"])["w"] | ({ w: number; h: number; } & TLFrameShapeProps & Dimensions & N["props"])["w"] | ({ w: number; h: number; } & TLGeoShapeProps & Dimensions & N["props"])["w"] | ({ w: number; h: number; } & TLGroupShapeProps & Dimensions & N["props"])["w"] | ({ w: number; h: number; } & TLHighlightShapeProps & Dimensions & N["props"])["w"] | ({ w: number; h: number; } & TLImageShapeProps & Dimensions & N["props"])["w"] | ({ w: number; h: number; } & TLLineShapeProps & Dimensions & N["props"])["w"] | ({ w: number; h: number; } & TLNoteShapeProps & Dimensions & N["props"])["w"] | ({ w: number; h: number; } & TLTextShapeProps & Dimensions & N["props"])["w"] | ({ w: number; h: number; } & TLVideoShapeProps & Dimensions & N["props"])["w"] | ({ w: number; h: number; } & { w: number; h: number; } & Dimensions & N["props"])["w"] | ({ w: number; h: number; } & { w: number; h: number; } & Dimensions & N["props"])["w"] | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLDrawShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLDrawShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLDrawShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLFrameShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLFrameShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLFrameShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLGeoShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLGeoShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLGeoShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLGroupShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLGroupShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLGroupShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLImageShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLImageShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLImageShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLLineShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLLineShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLLineShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLNoteShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLNoteShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLNoteShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLTextShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLTextShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLTextShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLVideoShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLVideoShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLVideoShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLDrawShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLDrawShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLDrawShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLFrameShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLFrameShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLFrameShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLGeoShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLGeoShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLGeoShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLGroupShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLGroupShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLGroupShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLImageShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLImageShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLImageShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLLineShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLLineShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLLineShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLNoteShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLNoteShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLNoteShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLTextShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLTextShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLTextShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLVideoShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLVideoShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLVideoShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLDrawShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLDrawShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLDrawShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLFrameShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLFrameShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLFrameShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLGeoShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLGeoShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLGeoShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLGroupShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLGroupShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLGroupShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLImageShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLImageShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLImageShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLLineShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLLineShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLLineShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLNoteShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLNoteShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLNoteShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLTextShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLTextShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLTextShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLVideoShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLVideoShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & (TLVideoShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLArrowShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLBookmarkShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLDrawShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLEmbedShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLFrameShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLGeoShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLGroupShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLHighlightShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLImageShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLLineShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLNoteShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLTextShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & (TLVideoShapeProps & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLGeoShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLGroupShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLHighlightShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLImageShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLLineShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLNoteShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLTextShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLVideoShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & { w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLArrowShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLBookmarkShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLDrawShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLEmbedShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLFrameShapeProps & Dimensions & N["props"])["w"]) | ((TLBookmarkShapeProps & Dimensions & N["props"])["w"] & ({ w: number; h: number; } & TLGeoShapeProps & Dimensions & N["props"])["w"]) | any | (({ w: number; h: number; } & any & N["props"])["w"] & ({ w: number; h: number; } & any & N["props"])["w"]) +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +} + diff --git a/tests/baselines/reference/discriminateWithOptionalProperty4(exactoptionalpropertytypes=false).symbols b/tests/baselines/reference/discriminateWithOptionalProperty4(exactoptionalpropertytypes=false).symbols index ca674457d1850..6f54ad38342c4 100644 --- a/tests/baselines/reference/discriminateWithOptionalProperty4(exactoptionalpropertytypes=false).symbols +++ b/tests/baselines/reference/discriminateWithOptionalProperty4(exactoptionalpropertytypes=false).symbols @@ -14,9 +14,9 @@ export function main(a: string[] | undefined) { >b : Symbol(b, Decl(discriminateWithOptionalProperty4.ts, 3, 25)) z.a // ->z.a : Symbol(a, Decl(discriminateWithOptionalProperty4.ts, 3, 17), Decl(discriminateWithOptionalProperty4.ts, 3, 17)) +>z.a : Symbol(a, Decl(discriminateWithOptionalProperty4.ts, 3, 17)) >z : Symbol(z, Decl(discriminateWithOptionalProperty4.ts, 3, 7)) ->a : Symbol(a, Decl(discriminateWithOptionalProperty4.ts, 3, 17), Decl(discriminateWithOptionalProperty4.ts, 3, 17)) +>a : Symbol(a, Decl(discriminateWithOptionalProperty4.ts, 3, 17)) ? z.a.toString() >z.a.toString : Symbol(Array.toString, Decl(lib.es5.d.ts, --, --)) @@ -62,9 +62,9 @@ export function main(a: string[] | undefined) { "a" in z ? z.a.toString() : z.b.toString(); >z : Symbol(z, Decl(discriminateWithOptionalProperty4.ts, 3, 7)) >z.a.toString : Symbol(Array.toString, Decl(lib.es5.d.ts, --, --)) ->z.a : Symbol(a, Decl(discriminateWithOptionalProperty4.ts, 3, 17), Decl(discriminateWithOptionalProperty4.ts, 3, 17)) +>z.a : Symbol(a, Decl(discriminateWithOptionalProperty4.ts, 3, 17)) >z : Symbol(z, Decl(discriminateWithOptionalProperty4.ts, 3, 7)) ->a : Symbol(a, Decl(discriminateWithOptionalProperty4.ts, 3, 17), Decl(discriminateWithOptionalProperty4.ts, 3, 17)) +>a : Symbol(a, Decl(discriminateWithOptionalProperty4.ts, 3, 17)) >toString : Symbol(Array.toString, Decl(lib.es5.d.ts, --, --)) >z.b.toString : Symbol(Array.toString, Decl(lib.es5.d.ts, --, --)) >z.b : Symbol(b, Decl(discriminateWithOptionalProperty4.ts, 3, 25)) diff --git a/tests/baselines/reference/discriminateWithOptionalProperty4(exactoptionalpropertytypes=true).symbols b/tests/baselines/reference/discriminateWithOptionalProperty4(exactoptionalpropertytypes=true).symbols index ca674457d1850..6f54ad38342c4 100644 --- a/tests/baselines/reference/discriminateWithOptionalProperty4(exactoptionalpropertytypes=true).symbols +++ b/tests/baselines/reference/discriminateWithOptionalProperty4(exactoptionalpropertytypes=true).symbols @@ -14,9 +14,9 @@ export function main(a: string[] | undefined) { >b : Symbol(b, Decl(discriminateWithOptionalProperty4.ts, 3, 25)) z.a // ->z.a : Symbol(a, Decl(discriminateWithOptionalProperty4.ts, 3, 17), Decl(discriminateWithOptionalProperty4.ts, 3, 17)) +>z.a : Symbol(a, Decl(discriminateWithOptionalProperty4.ts, 3, 17)) >z : Symbol(z, Decl(discriminateWithOptionalProperty4.ts, 3, 7)) ->a : Symbol(a, Decl(discriminateWithOptionalProperty4.ts, 3, 17), Decl(discriminateWithOptionalProperty4.ts, 3, 17)) +>a : Symbol(a, Decl(discriminateWithOptionalProperty4.ts, 3, 17)) ? z.a.toString() >z.a.toString : Symbol(Array.toString, Decl(lib.es5.d.ts, --, --)) @@ -62,9 +62,9 @@ export function main(a: string[] | undefined) { "a" in z ? z.a.toString() : z.b.toString(); >z : Symbol(z, Decl(discriminateWithOptionalProperty4.ts, 3, 7)) >z.a.toString : Symbol(Array.toString, Decl(lib.es5.d.ts, --, --)) ->z.a : Symbol(a, Decl(discriminateWithOptionalProperty4.ts, 3, 17), Decl(discriminateWithOptionalProperty4.ts, 3, 17)) +>z.a : Symbol(a, Decl(discriminateWithOptionalProperty4.ts, 3, 17)) >z : Symbol(z, Decl(discriminateWithOptionalProperty4.ts, 3, 7)) ->a : Symbol(a, Decl(discriminateWithOptionalProperty4.ts, 3, 17), Decl(discriminateWithOptionalProperty4.ts, 3, 17)) +>a : Symbol(a, Decl(discriminateWithOptionalProperty4.ts, 3, 17)) >toString : Symbol(Array.toString, Decl(lib.es5.d.ts, --, --)) >z.b.toString : Symbol(Array.toString, Decl(lib.es5.d.ts, --, --)) >z.b : Symbol(b, Decl(discriminateWithOptionalProperty4.ts, 3, 25)) diff --git a/tests/baselines/reference/intersectionOfUnionNarrowing.symbols b/tests/baselines/reference/intersectionOfUnionNarrowing.symbols index cb46702a1e155..9a5067c8228ff 100644 --- a/tests/baselines/reference/intersectionOfUnionNarrowing.symbols +++ b/tests/baselines/reference/intersectionOfUnionNarrowing.symbols @@ -25,9 +25,9 @@ declare const q: X & AorB; >AorB : Symbol(AorB, Decl(intersectionOfUnionNarrowing.ts, 3, 1)) if (q.a !== undefined) { ->q.a : Symbol(a, Decl(intersectionOfUnionNarrowing.ts, 0, 13), Decl(intersectionOfUnionNarrowing.ts, 4, 13), Decl(intersectionOfUnionNarrowing.ts, 0, 13), Decl(intersectionOfUnionNarrowing.ts, 4, 43)) +>q.a : Symbol(a, Decl(intersectionOfUnionNarrowing.ts, 0, 13), Decl(intersectionOfUnionNarrowing.ts, 4, 13), Decl(intersectionOfUnionNarrowing.ts, 4, 43)) >q : Symbol(q, Decl(intersectionOfUnionNarrowing.ts, 6, 13)) ->a : Symbol(a, Decl(intersectionOfUnionNarrowing.ts, 0, 13), Decl(intersectionOfUnionNarrowing.ts, 4, 13), Decl(intersectionOfUnionNarrowing.ts, 0, 13), Decl(intersectionOfUnionNarrowing.ts, 4, 43)) +>a : Symbol(a, Decl(intersectionOfUnionNarrowing.ts, 0, 13), Decl(intersectionOfUnionNarrowing.ts, 4, 13), Decl(intersectionOfUnionNarrowing.ts, 4, 43)) >undefined : Symbol(undefined) q.a.aProp; diff --git a/tests/baselines/reference/jsDeclarationsFunctionClassesCjsExportAssignment(target=es2015).symbols b/tests/baselines/reference/jsDeclarationsFunctionClassesCjsExportAssignment(target=es2015).symbols index be07dcbe9eb09..363bbd3cf9318 100644 --- a/tests/baselines/reference/jsDeclarationsFunctionClassesCjsExportAssignment(target=es2015).symbols +++ b/tests/baselines/reference/jsDeclarationsFunctionClassesCjsExportAssignment(target=es2015).symbols @@ -90,8 +90,8 @@ function Context(input) { this.state = this.construct(input); >this.state : Symbol(Context.state, Decl(context.js, 34, 5)) >state : Symbol(Context.state, Decl(context.js, 34, 5)) ->this.construct : Symbol(construct, Decl(context.js, 37, 21), Decl(context.js, 37, 21)) ->construct : Symbol(construct, Decl(context.js, 37, 21), Decl(context.js, 37, 21)) +>this.construct : Symbol(construct, Decl(context.js, 37, 21)) +>construct : Symbol(construct, Decl(context.js, 37, 21)) >input : Symbol(input, Decl(context.js, 31, 17)) } Context.prototype = { diff --git a/tests/baselines/reference/jsDeclarationsFunctionClassesCjsExportAssignment(target=es5).symbols b/tests/baselines/reference/jsDeclarationsFunctionClassesCjsExportAssignment(target=es5).symbols index be07dcbe9eb09..363bbd3cf9318 100644 --- a/tests/baselines/reference/jsDeclarationsFunctionClassesCjsExportAssignment(target=es5).symbols +++ b/tests/baselines/reference/jsDeclarationsFunctionClassesCjsExportAssignment(target=es5).symbols @@ -90,8 +90,8 @@ function Context(input) { this.state = this.construct(input); >this.state : Symbol(Context.state, Decl(context.js, 34, 5)) >state : Symbol(Context.state, Decl(context.js, 34, 5)) ->this.construct : Symbol(construct, Decl(context.js, 37, 21), Decl(context.js, 37, 21)) ->construct : Symbol(construct, Decl(context.js, 37, 21), Decl(context.js, 37, 21)) +>this.construct : Symbol(construct, Decl(context.js, 37, 21)) +>construct : Symbol(construct, Decl(context.js, 37, 21)) >input : Symbol(input, Decl(context.js, 31, 17)) } Context.prototype = { diff --git a/tests/baselines/reference/mixinAccessModifiers.symbols b/tests/baselines/reference/mixinAccessModifiers.symbols index 6efe7ede41541..e96417fb862f2 100644 --- a/tests/baselines/reference/mixinAccessModifiers.symbols +++ b/tests/baselines/reference/mixinAccessModifiers.symbols @@ -389,13 +389,13 @@ function f9(x: ProtectedGeneric<{a: void;}> & ProtectedGeneric<{a:void;b:void;}> >b : Symbol(b, Decl(mixinAccessModifiers.ts, 127, 71)) x.privateMethod(); // Error, private constituent makes method inaccessible ->x.privateMethod : Symbol(ProtectedGeneric.privateMethod, Decl(mixinAccessModifiers.ts, 107, 27), Decl(mixinAccessModifiers.ts, 107, 27)) +>x.privateMethod : Symbol(ProtectedGeneric.privateMethod, Decl(mixinAccessModifiers.ts, 107, 27)) >x : Symbol(x, Decl(mixinAccessModifiers.ts, 127, 12)) ->privateMethod : Symbol(ProtectedGeneric.privateMethod, Decl(mixinAccessModifiers.ts, 107, 27), Decl(mixinAccessModifiers.ts, 107, 27)) +>privateMethod : Symbol(ProtectedGeneric.privateMethod, Decl(mixinAccessModifiers.ts, 107, 27)) x.protectedMethod(); // Error, protected when all constituents are protected ->x.protectedMethod : Symbol(ProtectedGeneric.protectedMethod, Decl(mixinAccessModifiers.ts, 108, 27), Decl(mixinAccessModifiers.ts, 108, 27)) +>x.protectedMethod : Symbol(ProtectedGeneric.protectedMethod, Decl(mixinAccessModifiers.ts, 108, 27)) >x : Symbol(x, Decl(mixinAccessModifiers.ts, 127, 12)) ->protectedMethod : Symbol(ProtectedGeneric.protectedMethod, Decl(mixinAccessModifiers.ts, 108, 27), Decl(mixinAccessModifiers.ts, 108, 27)) +>protectedMethod : Symbol(ProtectedGeneric.protectedMethod, Decl(mixinAccessModifiers.ts, 108, 27)) } diff --git a/tests/baselines/reference/neverAsDiscriminantType(strict=false).symbols b/tests/baselines/reference/neverAsDiscriminantType(strict=false).symbols index 4b42e19e8f1f6..b3a0bc7760c10 100644 --- a/tests/baselines/reference/neverAsDiscriminantType(strict=false).symbols +++ b/tests/baselines/reference/neverAsDiscriminantType(strict=false).symbols @@ -185,9 +185,9 @@ export async function adaptSession(input: GatewayPayload) { >GatewayPayload : Symbol(GatewayPayload, Decl(neverAsDiscriminantType.ts, 23, 1)) if (input.t === 'MESSAGE_CREATE') { ->input.t : Symbol(GatewayPayloadStructure.t, Decl(neverAsDiscriminantType.ts, 20, 8), Decl(neverAsDiscriminantType.ts, 20, 8), Decl(neverAsDiscriminantType.ts, 20, 8), Decl(neverAsDiscriminantType.ts, 20, 8), Decl(neverAsDiscriminantType.ts, 20, 8) ... and 8 more) +>input.t : Symbol(GatewayPayloadStructure.t, Decl(neverAsDiscriminantType.ts, 20, 8)) >input : Symbol(input, Decl(neverAsDiscriminantType.ts, 59, 35)) ->t : Symbol(GatewayPayloadStructure.t, Decl(neverAsDiscriminantType.ts, 20, 8), Decl(neverAsDiscriminantType.ts, 20, 8), Decl(neverAsDiscriminantType.ts, 20, 8), Decl(neverAsDiscriminantType.ts, 20, 8), Decl(neverAsDiscriminantType.ts, 20, 8) ... and 8 more) +>t : Symbol(GatewayPayloadStructure.t, Decl(neverAsDiscriminantType.ts, 20, 8)) assertMessage(input.d) >assertMessage : Symbol(assertMessage, Decl(neverAsDiscriminantType.ts, 55, 1)) diff --git a/tests/baselines/reference/neverAsDiscriminantType(strict=true).symbols b/tests/baselines/reference/neverAsDiscriminantType(strict=true).symbols index 4b42e19e8f1f6..b3a0bc7760c10 100644 --- a/tests/baselines/reference/neverAsDiscriminantType(strict=true).symbols +++ b/tests/baselines/reference/neverAsDiscriminantType(strict=true).symbols @@ -185,9 +185,9 @@ export async function adaptSession(input: GatewayPayload) { >GatewayPayload : Symbol(GatewayPayload, Decl(neverAsDiscriminantType.ts, 23, 1)) if (input.t === 'MESSAGE_CREATE') { ->input.t : Symbol(GatewayPayloadStructure.t, Decl(neverAsDiscriminantType.ts, 20, 8), Decl(neverAsDiscriminantType.ts, 20, 8), Decl(neverAsDiscriminantType.ts, 20, 8), Decl(neverAsDiscriminantType.ts, 20, 8), Decl(neverAsDiscriminantType.ts, 20, 8) ... and 8 more) +>input.t : Symbol(GatewayPayloadStructure.t, Decl(neverAsDiscriminantType.ts, 20, 8)) >input : Symbol(input, Decl(neverAsDiscriminantType.ts, 59, 35)) ->t : Symbol(GatewayPayloadStructure.t, Decl(neverAsDiscriminantType.ts, 20, 8), Decl(neverAsDiscriminantType.ts, 20, 8), Decl(neverAsDiscriminantType.ts, 20, 8), Decl(neverAsDiscriminantType.ts, 20, 8), Decl(neverAsDiscriminantType.ts, 20, 8) ... and 8 more) +>t : Symbol(GatewayPayloadStructure.t, Decl(neverAsDiscriminantType.ts, 20, 8)) assertMessage(input.d) >assertMessage : Symbol(assertMessage, Decl(neverAsDiscriminantType.ts, 55, 1)) diff --git a/tests/baselines/reference/objectLiteralNormalization.symbols b/tests/baselines/reference/objectLiteralNormalization.symbols index 07b1502492b54..0a9422ec02730 100644 --- a/tests/baselines/reference/objectLiteralNormalization.symbols +++ b/tests/baselines/reference/objectLiteralNormalization.symbols @@ -17,14 +17,14 @@ a1.a; // number >a : Symbol(a, Decl(objectLiteralNormalization.ts, 1, 11), Decl(objectLiteralNormalization.ts, 1, 21), Decl(objectLiteralNormalization.ts, 1, 39)) a1.b; // string | undefined ->a1.b : Symbol(b, Decl(objectLiteralNormalization.ts, 1, 45), Decl(objectLiteralNormalization.ts, 1, 27), Decl(objectLiteralNormalization.ts, 1, 45)) +>a1.b : Symbol(b, Decl(objectLiteralNormalization.ts, 1, 45), Decl(objectLiteralNormalization.ts, 1, 27)) >a1 : Symbol(a1, Decl(objectLiteralNormalization.ts, 1, 3)) ->b : Symbol(b, Decl(objectLiteralNormalization.ts, 1, 45), Decl(objectLiteralNormalization.ts, 1, 27), Decl(objectLiteralNormalization.ts, 1, 45)) +>b : Symbol(b, Decl(objectLiteralNormalization.ts, 1, 45), Decl(objectLiteralNormalization.ts, 1, 27)) a1.c; // boolean | undefined ->a1.c : Symbol(c, Decl(objectLiteralNormalization.ts, 1, 53), Decl(objectLiteralNormalization.ts, 1, 53)) +>a1.c : Symbol(c, Decl(objectLiteralNormalization.ts, 1, 53)) >a1 : Symbol(a1, Decl(objectLiteralNormalization.ts, 1, 3)) ->c : Symbol(c, Decl(objectLiteralNormalization.ts, 1, 53), Decl(objectLiteralNormalization.ts, 1, 53)) +>c : Symbol(c, Decl(objectLiteralNormalization.ts, 1, 53)) a1 = { a: 1 }; >a1 : Symbol(a1, Decl(objectLiteralNormalization.ts, 1, 3)) @@ -50,9 +50,9 @@ let a2 = [{ a: 1, b: 2 }, { a: "abc" }, {}][0]; >a : Symbol(a, Decl(objectLiteralNormalization.ts, 10, 27)) a2.a; // string | number | undefined ->a2.a : Symbol(a, Decl(objectLiteralNormalization.ts, 10, 11), Decl(objectLiteralNormalization.ts, 10, 27), Decl(objectLiteralNormalization.ts, 10, 27)) +>a2.a : Symbol(a, Decl(objectLiteralNormalization.ts, 10, 11), Decl(objectLiteralNormalization.ts, 10, 27)) >a2 : Symbol(a2, Decl(objectLiteralNormalization.ts, 10, 3)) ->a : Symbol(a, Decl(objectLiteralNormalization.ts, 10, 11), Decl(objectLiteralNormalization.ts, 10, 27), Decl(objectLiteralNormalization.ts, 10, 27)) +>a : Symbol(a, Decl(objectLiteralNormalization.ts, 10, 11), Decl(objectLiteralNormalization.ts, 10, 27)) a2.b; // number | undefined >a2.b : Symbol(b, Decl(objectLiteralNormalization.ts, 10, 17), Decl(objectLiteralNormalization.ts, 1, 45)) @@ -146,18 +146,18 @@ d1.pos; >pos : Symbol(pos, Decl(objectLiteralNormalization.ts, 33, 22), Decl(objectLiteralNormalization.ts, 33, 58)) d1.pos.x; ->d1.pos.x : Symbol(x, Decl(objectLiteralNormalization.ts, 33, 29), Decl(objectLiteralNormalization.ts, 33, 29)) +>d1.pos.x : Symbol(x, Decl(objectLiteralNormalization.ts, 33, 29)) >d1.pos : Symbol(pos, Decl(objectLiteralNormalization.ts, 33, 22), Decl(objectLiteralNormalization.ts, 33, 58)) >d1 : Symbol(d1, Decl(objectLiteralNormalization.ts, 33, 3)) >pos : Symbol(pos, Decl(objectLiteralNormalization.ts, 33, 22), Decl(objectLiteralNormalization.ts, 33, 58)) ->x : Symbol(x, Decl(objectLiteralNormalization.ts, 33, 29), Decl(objectLiteralNormalization.ts, 33, 29)) +>x : Symbol(x, Decl(objectLiteralNormalization.ts, 33, 29)) d1.pos.y; ->d1.pos.y : Symbol(y, Decl(objectLiteralNormalization.ts, 33, 35), Decl(objectLiteralNormalization.ts, 33, 35)) +>d1.pos.y : Symbol(y, Decl(objectLiteralNormalization.ts, 33, 35)) >d1.pos : Symbol(pos, Decl(objectLiteralNormalization.ts, 33, 22), Decl(objectLiteralNormalization.ts, 33, 58)) >d1 : Symbol(d1, Decl(objectLiteralNormalization.ts, 33, 3)) >pos : Symbol(pos, Decl(objectLiteralNormalization.ts, 33, 22), Decl(objectLiteralNormalization.ts, 33, 58)) ->y : Symbol(y, Decl(objectLiteralNormalization.ts, 33, 35), Decl(objectLiteralNormalization.ts, 33, 35)) +>y : Symbol(y, Decl(objectLiteralNormalization.ts, 33, 35)) d1.pos.a; >d1.pos.a : Symbol(a, Decl(objectLiteralNormalization.ts, 10, 27), Decl(objectLiteralNormalization.ts, 33, 73)) diff --git a/tests/baselines/reference/recursiveArrayNotCircular.symbols b/tests/baselines/reference/recursiveArrayNotCircular.symbols index 3dbae6911726b..9cf34e9d2e2a2 100644 --- a/tests/baselines/reference/recursiveArrayNotCircular.symbols +++ b/tests/baselines/reference/recursiveArrayNotCircular.symbols @@ -67,9 +67,9 @@ function reducer(action: ReducerAction): void { >ReducerAction : Symbol(ReducerAction, Decl(recursiveArrayNotCircular.ts, 7, 1)) switch(action.type) { ->action.type : Symbol(type, Decl(recursiveArrayNotCircular.ts, 0, 53), Decl(recursiveArrayNotCircular.ts, 0, 53), Decl(recursiveArrayNotCircular.ts, 0, 53), Decl(recursiveArrayNotCircular.ts, 0, 53), Decl(recursiveArrayNotCircular.ts, 0, 53)) +>action.type : Symbol(type, Decl(recursiveArrayNotCircular.ts, 0, 53)) >action : Symbol(action, Decl(recursiveArrayNotCircular.ts, 19, 17)) ->type : Symbol(type, Decl(recursiveArrayNotCircular.ts, 0, 53), Decl(recursiveArrayNotCircular.ts, 0, 53), Decl(recursiveArrayNotCircular.ts, 0, 53), Decl(recursiveArrayNotCircular.ts, 0, 53), Decl(recursiveArrayNotCircular.ts, 0, 53)) +>type : Symbol(type, Decl(recursiveArrayNotCircular.ts, 0, 53)) case ActionType.Bar: >ActionType.Bar : Symbol(ActionType.Bar, Decl(recursiveArrayNotCircular.ts, 3, 8)) @@ -90,9 +90,9 @@ function reducer(action: ReducerAction): void { const y: boolean = action.payload; >y : Symbol(y, Decl(recursiveArrayNotCircular.ts, 25, 17)) ->action.payload : Symbol(payload, Decl(recursiveArrayNotCircular.ts, 0, 62), Decl(recursiveArrayNotCircular.ts, 0, 62)) +>action.payload : Symbol(payload, Decl(recursiveArrayNotCircular.ts, 0, 62)) >action : Symbol(action, Decl(recursiveArrayNotCircular.ts, 19, 17)) ->payload : Symbol(payload, Decl(recursiveArrayNotCircular.ts, 0, 62), Decl(recursiveArrayNotCircular.ts, 0, 62)) +>payload : Symbol(payload, Decl(recursiveArrayNotCircular.ts, 0, 62)) break; case ActionType.Foo: diff --git a/tests/baselines/reference/silentNeverPropagation.symbols b/tests/baselines/reference/silentNeverPropagation.symbols index 1d864ecb9eeae..7382a22d947d8 100644 --- a/tests/baselines/reference/silentNeverPropagation.symbols +++ b/tests/baselines/reference/silentNeverPropagation.symbols @@ -67,16 +67,16 @@ const breaks = convert( breaks.state.a >breaks.state.a : Symbol(a, Decl(silentNeverPropagation.ts, 19, 18)) ->breaks.state : Symbol(state, Decl(silentNeverPropagation.ts, 2, 32), Decl(silentNeverPropagation.ts, 2, 32)) +>breaks.state : Symbol(state, Decl(silentNeverPropagation.ts, 2, 32)) >breaks : Symbol(breaks, Decl(silentNeverPropagation.ts, 18, 5)) ->state : Symbol(state, Decl(silentNeverPropagation.ts, 2, 32), Decl(silentNeverPropagation.ts, 2, 32)) +>state : Symbol(state, Decl(silentNeverPropagation.ts, 2, 32)) >a : Symbol(a, Decl(silentNeverPropagation.ts, 19, 18)) breaks.state.z >breaks.state.z : Symbol(z, Decl(silentNeverPropagation.ts, 10, 18)) ->breaks.state : Symbol(state, Decl(silentNeverPropagation.ts, 2, 32), Decl(silentNeverPropagation.ts, 2, 32)) +>breaks.state : Symbol(state, Decl(silentNeverPropagation.ts, 2, 32)) >breaks : Symbol(breaks, Decl(silentNeverPropagation.ts, 18, 5)) ->state : Symbol(state, Decl(silentNeverPropagation.ts, 2, 32), Decl(silentNeverPropagation.ts, 2, 32)) +>state : Symbol(state, Decl(silentNeverPropagation.ts, 2, 32)) >z : Symbol(z, Decl(silentNeverPropagation.ts, 10, 18)) breaks.foo() diff --git a/tests/baselines/reference/sliceResultCast.symbols b/tests/baselines/reference/sliceResultCast.symbols index d0360bd7b6fc3..5e1ff1f209190 100644 --- a/tests/baselines/reference/sliceResultCast.symbols +++ b/tests/baselines/reference/sliceResultCast.symbols @@ -5,7 +5,7 @@ declare var x: [number, string] | [number, string, string]; >x : Symbol(x, Decl(sliceResultCast.ts, 0, 11)) x.slice(1) as readonly string[]; ->x.slice : Symbol(Array.slice, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --)) +>x.slice : Symbol(Array.slice, Decl(lib.es5.d.ts, --, --)) >x : Symbol(x, Decl(sliceResultCast.ts, 0, 11)) ->slice : Symbol(Array.slice, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --)) +>slice : Symbol(Array.slice, Decl(lib.es5.d.ts, --, --)) diff --git a/tests/baselines/reference/typeParameterExtendingUnion1.symbols b/tests/baselines/reference/typeParameterExtendingUnion1.symbols index aabfcf324a9b9..5108434cbcde6 100644 --- a/tests/baselines/reference/typeParameterExtendingUnion1.symbols +++ b/tests/baselines/reference/typeParameterExtendingUnion1.symbols @@ -35,9 +35,9 @@ function f(a: T) { >T : Symbol(T, Decl(typeParameterExtendingUnion1.ts, 8, 11)) a.run(); ->a.run : Symbol(Animal.run, Decl(typeParameterExtendingUnion1.ts, 0, 14), Decl(typeParameterExtendingUnion1.ts, 0, 14)) +>a.run : Symbol(Animal.run, Decl(typeParameterExtendingUnion1.ts, 0, 14)) >a : Symbol(a, Decl(typeParameterExtendingUnion1.ts, 8, 32)) ->run : Symbol(Animal.run, Decl(typeParameterExtendingUnion1.ts, 0, 14), Decl(typeParameterExtendingUnion1.ts, 0, 14)) +>run : Symbol(Animal.run, Decl(typeParameterExtendingUnion1.ts, 0, 14)) run(a); >run : Symbol(run, Decl(typeParameterExtendingUnion1.ts, 2, 33)) diff --git a/tests/baselines/reference/typeParameterExtendingUnion2.symbols b/tests/baselines/reference/typeParameterExtendingUnion2.symbols index 82cc5b97cd846..6e2507dc31b30 100644 --- a/tests/baselines/reference/typeParameterExtendingUnion2.symbols +++ b/tests/baselines/reference/typeParameterExtendingUnion2.symbols @@ -22,9 +22,9 @@ function run(a: Cat | Dog) { >Dog : Symbol(Dog, Decl(typeParameterExtendingUnion2.ts, 1, 33)) a.run(); ->a.run : Symbol(Animal.run, Decl(typeParameterExtendingUnion2.ts, 0, 14), Decl(typeParameterExtendingUnion2.ts, 0, 14)) +>a.run : Symbol(Animal.run, Decl(typeParameterExtendingUnion2.ts, 0, 14)) >a : Symbol(a, Decl(typeParameterExtendingUnion2.ts, 4, 13)) ->run : Symbol(Animal.run, Decl(typeParameterExtendingUnion2.ts, 0, 14), Decl(typeParameterExtendingUnion2.ts, 0, 14)) +>run : Symbol(Animal.run, Decl(typeParameterExtendingUnion2.ts, 0, 14)) } function f(a: T) { @@ -36,9 +36,9 @@ function f(a: T) { >T : Symbol(T, Decl(typeParameterExtendingUnion2.ts, 8, 11)) a.run(); ->a.run : Symbol(Animal.run, Decl(typeParameterExtendingUnion2.ts, 0, 14), Decl(typeParameterExtendingUnion2.ts, 0, 14)) +>a.run : Symbol(Animal.run, Decl(typeParameterExtendingUnion2.ts, 0, 14)) >a : Symbol(a, Decl(typeParameterExtendingUnion2.ts, 8, 32)) ->run : Symbol(Animal.run, Decl(typeParameterExtendingUnion2.ts, 0, 14), Decl(typeParameterExtendingUnion2.ts, 0, 14)) +>run : Symbol(Animal.run, Decl(typeParameterExtendingUnion2.ts, 0, 14)) run(a); >run : Symbol(run, Decl(typeParameterExtendingUnion2.ts, 2, 33)) diff --git a/tests/baselines/reference/typeParameterLeak.symbols b/tests/baselines/reference/typeParameterLeak.symbols index 0919ebd379443..89cb9b5ce29c9 100644 --- a/tests/baselines/reference/typeParameterLeak.symbols +++ b/tests/baselines/reference/typeParameterLeak.symbols @@ -47,19 +47,19 @@ declare const f: BoxFactoryFactory; const b = f({ x: "", y: "" })?.getBox(); >b : Symbol(b, Decl(typeParameterLeak.ts, 14, 5)) ->f({ x: "", y: "" })?.getBox : Symbol(BoxFactory.getBox, Decl(typeParameterLeak.ts, 9, 25), Decl(typeParameterLeak.ts, 9, 25)) +>f({ x: "", y: "" })?.getBox : Symbol(BoxFactory.getBox, Decl(typeParameterLeak.ts, 9, 25)) >f : Symbol(f, Decl(typeParameterLeak.ts, 13, 13)) >x : Symbol(x, Decl(typeParameterLeak.ts, 14, 13)) >y : Symbol(y, Decl(typeParameterLeak.ts, 14, 20)) ->getBox : Symbol(BoxFactory.getBox, Decl(typeParameterLeak.ts, 9, 25), Decl(typeParameterLeak.ts, 9, 25)) +>getBox : Symbol(BoxFactory.getBox, Decl(typeParameterLeak.ts, 9, 25)) if (b) { >b : Symbol(b, Decl(typeParameterLeak.ts, 14, 5)) const x = b.data; >x : Symbol(x, Decl(typeParameterLeak.ts, 16, 7)) ->b.data : Symbol(Box.data, Decl(typeParameterLeak.ts, 2, 18), Decl(typeParameterLeak.ts, 2, 18)) +>b.data : Symbol(Box.data, Decl(typeParameterLeak.ts, 2, 18)) >b : Symbol(b, Decl(typeParameterLeak.ts, 14, 5)) ->data : Symbol(Box.data, Decl(typeParameterLeak.ts, 2, 18), Decl(typeParameterLeak.ts, 2, 18)) +>data : Symbol(Box.data, Decl(typeParameterLeak.ts, 2, 18)) } diff --git a/tests/baselines/reference/typeVariableConstraintIntersections.symbols b/tests/baselines/reference/typeVariableConstraintIntersections.symbols index ab22dba71173d..b9355ad29e154 100644 --- a/tests/baselines/reference/typeVariableConstraintIntersections.symbols +++ b/tests/baselines/reference/typeVariableConstraintIntersections.symbols @@ -318,9 +318,9 @@ function handleOption(option: Options & { kind: K }): const kind = option.kind; >kind : Symbol(kind, Decl(typeVariableConstraintIntersections.ts, 88, 7)) ->option.kind : Symbol(kind, Decl(typeVariableConstraintIntersections.ts, 65, 18), Decl(typeVariableConstraintIntersections.ts, 87, 68), Decl(typeVariableConstraintIntersections.ts, 70, 18), Decl(typeVariableConstraintIntersections.ts, 87, 68)) +>option.kind : Symbol(kind, Decl(typeVariableConstraintIntersections.ts, 65, 18), Decl(typeVariableConstraintIntersections.ts, 87, 68), Decl(typeVariableConstraintIntersections.ts, 70, 18)) >option : Symbol(option, Decl(typeVariableConstraintIntersections.ts, 87, 49)) ->kind : Symbol(kind, Decl(typeVariableConstraintIntersections.ts, 65, 18), Decl(typeVariableConstraintIntersections.ts, 87, 68), Decl(typeVariableConstraintIntersections.ts, 70, 18), Decl(typeVariableConstraintIntersections.ts, 87, 68)) +>kind : Symbol(kind, Decl(typeVariableConstraintIntersections.ts, 65, 18), Decl(typeVariableConstraintIntersections.ts, 87, 68), Decl(typeVariableConstraintIntersections.ts, 70, 18)) const handler = optionHandlers[kind]; >handler : Symbol(handler, Decl(typeVariableConstraintIntersections.ts, 89, 7)) diff --git a/tests/baselines/reference/typedefCrossModule2.symbols b/tests/baselines/reference/typedefCrossModule2.symbols index 306ad58758eca..b249340e332bb 100644 --- a/tests/baselines/reference/typedefCrossModule2.symbols +++ b/tests/baselines/reference/typedefCrossModule2.symbols @@ -16,9 +16,9 @@ var bb; var bbb = new mod.Baz(); >bbb : Symbol(bbb, Decl(use.js, 5, 3)) ->mod.Baz : Symbol(Baz, Decl(mod1.js, 8, 4), Decl(mod1.js, 9, 18), Decl(mod1.js, 8, 4), Decl(mod1.js, 9, 18)) +>mod.Baz : Symbol(Baz, Decl(mod1.js, 8, 4), Decl(mod1.js, 9, 18)) >mod : Symbol(mod, Decl(use.js, 0, 3)) ->Baz : Symbol(Baz, Decl(mod1.js, 8, 4), Decl(mod1.js, 9, 18), Decl(mod1.js, 8, 4), Decl(mod1.js, 9, 18)) +>Baz : Symbol(Baz, Decl(mod1.js, 8, 4), Decl(mod1.js, 9, 18)) === mod1.js === // error diff --git a/tests/baselines/reference/unionCallMixedTypeParameterPresence.symbols b/tests/baselines/reference/unionCallMixedTypeParameterPresence.symbols index 22f49ee96d578..06c6f190d0986 100644 --- a/tests/baselines/reference/unionCallMixedTypeParameterPresence.symbols +++ b/tests/baselines/reference/unionCallMixedTypeParameterPresence.symbols @@ -37,9 +37,9 @@ declare const e: Err<0> | Err<1> | Ok<2>; const e2 = e.f((e) => e); >e2 : Symbol(e2, Decl(unionCallMixedTypeParameterPresence.ts, 9, 5)) ->e.f : Symbol(f, Decl(unionCallMixedTypeParameterPresence.ts, 2, 18), Decl(unionCallMixedTypeParameterPresence.ts, 2, 18), Decl(unionCallMixedTypeParameterPresence.ts, 5, 17)) +>e.f : Symbol(f, Decl(unionCallMixedTypeParameterPresence.ts, 2, 18), Decl(unionCallMixedTypeParameterPresence.ts, 5, 17)) >e : Symbol(e, Decl(unionCallMixedTypeParameterPresence.ts, 8, 13)) ->f : Symbol(f, Decl(unionCallMixedTypeParameterPresence.ts, 2, 18), Decl(unionCallMixedTypeParameterPresence.ts, 2, 18), Decl(unionCallMixedTypeParameterPresence.ts, 5, 17)) +>f : Symbol(f, Decl(unionCallMixedTypeParameterPresence.ts, 2, 18), Decl(unionCallMixedTypeParameterPresence.ts, 5, 17)) >e : Symbol(e, Decl(unionCallMixedTypeParameterPresence.ts, 9, 16)) >e : Symbol(e, Decl(unionCallMixedTypeParameterPresence.ts, 9, 16)) diff --git a/tests/baselines/reference/unionOfArraysFilterCall.symbols b/tests/baselines/reference/unionOfArraysFilterCall.symbols index cc4d8805737a7..ad11886612cef 100644 --- a/tests/baselines/reference/unionOfArraysFilterCall.symbols +++ b/tests/baselines/reference/unionOfArraysFilterCall.symbols @@ -22,10 +22,10 @@ interface Buzz { } ([] as Fizz[] | Buzz[]).filter(item => item.id < 5); ->([] as Fizz[] | Buzz[]).filter : Symbol(Array.filter, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --)) +>([] as Fizz[] | Buzz[]).filter : Symbol(Array.filter, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --)) >Fizz : Symbol(Fizz, Decl(unionOfArraysFilterCall.ts, 0, 0)) >Buzz : Symbol(Buzz, Decl(unionOfArraysFilterCall.ts, 3, 1)) ->filter : Symbol(Array.filter, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --)) +>filter : Symbol(Array.filter, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --)) >item : Symbol(item, Decl(unionOfArraysFilterCall.ts, 10, 31)) >item.id : Symbol(id, Decl(unionOfArraysFilterCall.ts, 0, 16), Decl(unionOfArraysFilterCall.ts, 5, 16)) >item : Symbol(item, Decl(unionOfArraysFilterCall.ts, 10, 31)) @@ -42,10 +42,10 @@ interface Buzz { >id : Symbol(id, Decl(unionOfArraysFilterCall.ts, 0, 16), Decl(unionOfArraysFilterCall.ts, 5, 16)) ([] as Fizz[] | Buzz[]).find(item => item); ->([] as Fizz[] | Buzz[]).find : Symbol(Array.find, Decl(lib.es2015.core.d.ts, --, --), Decl(lib.es2015.core.d.ts, --, --), Decl(lib.es2015.core.d.ts, --, --), Decl(lib.es2015.core.d.ts, --, --)) +>([] as Fizz[] | Buzz[]).find : Symbol(Array.find, Decl(lib.es2015.core.d.ts, --, --), Decl(lib.es2015.core.d.ts, --, --)) >Fizz : Symbol(Fizz, Decl(unionOfArraysFilterCall.ts, 0, 0)) >Buzz : Symbol(Buzz, Decl(unionOfArraysFilterCall.ts, 3, 1)) ->find : Symbol(Array.find, Decl(lib.es2015.core.d.ts, --, --), Decl(lib.es2015.core.d.ts, --, --), Decl(lib.es2015.core.d.ts, --, --), Decl(lib.es2015.core.d.ts, --, --)) +>find : Symbol(Array.find, Decl(lib.es2015.core.d.ts, --, --), Decl(lib.es2015.core.d.ts, --, --)) >item : Symbol(item, Decl(unionOfArraysFilterCall.ts, 13, 29)) >item : Symbol(item, Decl(unionOfArraysFilterCall.ts, 13, 29)) @@ -56,10 +56,10 @@ declare function isFizz(x: unknown): x is Fizz; >Fizz : Symbol(Fizz, Decl(unionOfArraysFilterCall.ts, 0, 0)) ([] as Fizz[] | Buzz[]).find(isFizz); ->([] as Fizz[] | Buzz[]).find : Symbol(Array.find, Decl(lib.es2015.core.d.ts, --, --), Decl(lib.es2015.core.d.ts, --, --), Decl(lib.es2015.core.d.ts, --, --), Decl(lib.es2015.core.d.ts, --, --)) +>([] as Fizz[] | Buzz[]).find : Symbol(Array.find, Decl(lib.es2015.core.d.ts, --, --), Decl(lib.es2015.core.d.ts, --, --)) >Fizz : Symbol(Fizz, Decl(unionOfArraysFilterCall.ts, 0, 0)) >Buzz : Symbol(Buzz, Decl(unionOfArraysFilterCall.ts, 3, 1)) ->find : Symbol(Array.find, Decl(lib.es2015.core.d.ts, --, --), Decl(lib.es2015.core.d.ts, --, --), Decl(lib.es2015.core.d.ts, --, --), Decl(lib.es2015.core.d.ts, --, --)) +>find : Symbol(Array.find, Decl(lib.es2015.core.d.ts, --, --), Decl(lib.es2015.core.d.ts, --, --)) >isFizz : Symbol(isFizz, Decl(unionOfArraysFilterCall.ts, 13, 43)) declare function isBuzz(x: unknown): x is Buzz; @@ -69,27 +69,27 @@ declare function isBuzz(x: unknown): x is Buzz; >Buzz : Symbol(Buzz, Decl(unionOfArraysFilterCall.ts, 3, 1)) ([] as Fizz[] | Buzz[]).find(isBuzz); ->([] as Fizz[] | Buzz[]).find : Symbol(Array.find, Decl(lib.es2015.core.d.ts, --, --), Decl(lib.es2015.core.d.ts, --, --), Decl(lib.es2015.core.d.ts, --, --), Decl(lib.es2015.core.d.ts, --, --)) +>([] as Fizz[] | Buzz[]).find : Symbol(Array.find, Decl(lib.es2015.core.d.ts, --, --), Decl(lib.es2015.core.d.ts, --, --)) >Fizz : Symbol(Fizz, Decl(unionOfArraysFilterCall.ts, 0, 0)) >Buzz : Symbol(Buzz, Decl(unionOfArraysFilterCall.ts, 3, 1)) ->find : Symbol(Array.find, Decl(lib.es2015.core.d.ts, --, --), Decl(lib.es2015.core.d.ts, --, --), Decl(lib.es2015.core.d.ts, --, --), Decl(lib.es2015.core.d.ts, --, --)) +>find : Symbol(Array.find, Decl(lib.es2015.core.d.ts, --, --), Decl(lib.es2015.core.d.ts, --, --)) >isBuzz : Symbol(isBuzz, Decl(unionOfArraysFilterCall.ts, 15, 37)) ([] as Fizz[] | Buzz[]).every(item => item.id < 5); ->([] as Fizz[] | Buzz[]).every : Symbol(Array.every, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --)) +>([] as Fizz[] | Buzz[]).every : Symbol(Array.every, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --)) >Fizz : Symbol(Fizz, Decl(unionOfArraysFilterCall.ts, 0, 0)) >Buzz : Symbol(Buzz, Decl(unionOfArraysFilterCall.ts, 3, 1)) ->every : Symbol(Array.every, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --)) +>every : Symbol(Array.every, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --)) >item : Symbol(item, Decl(unionOfArraysFilterCall.ts, 19, 30)) >item.id : Symbol(id, Decl(unionOfArraysFilterCall.ts, 0, 16), Decl(unionOfArraysFilterCall.ts, 5, 16)) >item : Symbol(item, Decl(unionOfArraysFilterCall.ts, 19, 30)) >id : Symbol(id, Decl(unionOfArraysFilterCall.ts, 0, 16), Decl(unionOfArraysFilterCall.ts, 5, 16)) ([] as Fizz[] | Buzz[]).reduce(item => item); ->([] as Fizz[] | Buzz[]).reduce : Symbol(Array.reduce, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --) ... and 1 more) +>([] as Fizz[] | Buzz[]).reduce : Symbol(Array.reduce, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --)) >Fizz : Symbol(Fizz, Decl(unionOfArraysFilterCall.ts, 0, 0)) >Buzz : Symbol(Buzz, Decl(unionOfArraysFilterCall.ts, 3, 1)) ->reduce : Symbol(Array.reduce, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --) ... and 1 more) +>reduce : Symbol(Array.reduce, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --)) >item : Symbol(item, Decl(unionOfArraysFilterCall.ts, 21, 31)) >item : Symbol(item, Decl(unionOfArraysFilterCall.ts, 21, 31)) diff --git a/tests/baselines/reference/unionOfClassCalls.symbols b/tests/baselines/reference/unionOfClassCalls.symbols index 105a9c7cb9de4..53dbd72a94d37 100644 --- a/tests/baselines/reference/unionOfClassCalls.symbols +++ b/tests/baselines/reference/unionOfClassCalls.symbols @@ -36,9 +36,9 @@ declare const tmp: Test | Test; >B : Symbol(B, Decl(unionOfClassCalls.ts, 6, 22)) switch (tmp.get('t')) { ->tmp.get : Symbol(Test.get, Decl(unionOfClassCalls.ts, 2, 11), Decl(unionOfClassCalls.ts, 2, 11)) +>tmp.get : Symbol(Test.get, Decl(unionOfClassCalls.ts, 2, 11)) >tmp : Symbol(tmp, Decl(unionOfClassCalls.ts, 9, 13)) ->get : Symbol(Test.get, Decl(unionOfClassCalls.ts, 2, 11), Decl(unionOfClassCalls.ts, 2, 11)) +>get : Symbol(Test.get, Decl(unionOfClassCalls.ts, 2, 11)) case 'A': break; case 'B': break; @@ -56,9 +56,9 @@ const arr2: string[] = []; >arr2 : Symbol(arr2, Decl(unionOfClassCalls.ts, 20, 5)) arr.map((a: number | string, index: number) => { ->arr.map : Symbol(Array.map, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --)) +>arr.map : Symbol(Array.map, Decl(lib.es5.d.ts, --, --)) >arr : Symbol(arr, Decl(unionOfClassCalls.ts, 18, 5)) ->map : Symbol(Array.map, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --)) +>map : Symbol(Array.map, Decl(lib.es5.d.ts, --, --)) >a : Symbol(a, Decl(unionOfClassCalls.ts, 22, 9)) >index : Symbol(index, Decl(unionOfClassCalls.ts, 22, 28)) @@ -69,9 +69,9 @@ arr.map((a: number | string, index: number) => { // This case still doesn't work because `reduce` has multiple overloads :( arr.reduce((acc: Array, a: number | string, index: number) => { ->arr.reduce : Symbol(Array.reduce, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --) ... and 1 more) +>arr.reduce : Symbol(Array.reduce, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --)) >arr : Symbol(arr, Decl(unionOfClassCalls.ts, 18, 5)) ->reduce : Symbol(Array.reduce, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --) ... and 1 more) +>reduce : Symbol(Array.reduce, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --)) >acc : Symbol(acc, Decl(unionOfClassCalls.ts, 27, 12)) >Array : Symbol(Array, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.core.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --)) >a : Symbol(a, Decl(unionOfClassCalls.ts, 27, 31)) @@ -81,9 +81,9 @@ arr.reduce((acc: Array, a: number | string, index: number) => { }, []) arr.forEach((a: number | string, index: number) => { ->arr.forEach : Symbol(Array.forEach, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --)) +>arr.forEach : Symbol(Array.forEach, Decl(lib.es5.d.ts, --, --)) >arr : Symbol(arr, Decl(unionOfClassCalls.ts, 18, 5)) ->forEach : Symbol(Array.forEach, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --)) +>forEach : Symbol(Array.forEach, Decl(lib.es5.d.ts, --, --)) >a : Symbol(a, Decl(unionOfClassCalls.ts, 31, 13)) >index : Symbol(index, Decl(unionOfClassCalls.ts, 31, 32)) @@ -195,11 +195,11 @@ declare var a: Bar | Baz; // note, you must annotate `result` for now a.doThing().then((result: Bar | Baz) => { ->a.doThing().then : Symbol(Promise.then, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --)) ->a.doThing : Symbol(Foo.doThing, Decl(unionOfClassCalls.ts, 60, 19), Decl(unionOfClassCalls.ts, 60, 19)) +>a.doThing().then : Symbol(Promise.then, Decl(lib.es5.d.ts, --, --)) +>a.doThing : Symbol(Foo.doThing, Decl(unionOfClassCalls.ts, 60, 19)) >a : Symbol(a, Decl(unionOfClassCalls.ts, 71, 11)) ->doThing : Symbol(Foo.doThing, Decl(unionOfClassCalls.ts, 60, 19), Decl(unionOfClassCalls.ts, 60, 19)) ->then : Symbol(Promise.then, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --)) +>doThing : Symbol(Foo.doThing, Decl(unionOfClassCalls.ts, 60, 19)) +>then : Symbol(Promise.then, Decl(lib.es5.d.ts, --, --)) >result : Symbol(result, Decl(unionOfClassCalls.ts, 73, 18)) >Bar : Symbol(Bar, Decl(unionOfClassCalls.ts, 62, 1)) >Baz : Symbol(Baz, Decl(unionOfClassCalls.ts, 66, 1)) diff --git a/tests/cases/compiler/crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts b/tests/cases/compiler/crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts new file mode 100644 index 0000000000000..fb9e658e7bb41 --- /dev/null +++ b/tests/cases/compiler/crossProductUnionIntersectionRepeatedPropDeclarationsNoOOM1.ts @@ -0,0 +1,431 @@ +// @strict: true +// @noEmit: true + +type JsonPrimitive = boolean | null | number | string; +type JsonArray = JsonValue[]; +type JsonValue = JsonArray | JsonObject | JsonPrimitive; +interface JsonObject { + [key: string]: JsonValue | undefined; +} +type IndexKey = string & { + __brand: "indexKey"; +}; + +interface TLBaseAsset + extends BaseRecord<"asset", TLAssetId> { + type: Type; + props: Props; + meta: JsonObject; +} +type TLAssetId = RecordId>; + +interface VecModel { + x: number; + y: number; + z?: number; +} + +interface TLShapeCrop { + topLeft: VecModel; + bottomRight: VecModel; + isCircle?: boolean; +} + +type TLRichText = { + attrs?: any; + content: unknown[]; + type: string; +}; + +type TLDefaultColorStyle = + | "black" + | "blue" + | "green" + | "grey" + | "light-blue" + | "light-green" + | "light-red" + | "light-violet" + | "orange" + | "red" + | "violet" + | "white" + | "yellow"; +type TLDefaultFillStyle = + | "fill" + | "lined-fill" + | "none" + | "pattern" + | "semi" + | "solid"; +type TLDefaultDashStyle = "solid" | "draw" | "dashed" | "dotted"; +type TLDefaultSizeStyle = "l" | "m" | "s" | "xl"; +type TLLineShapeSplineStyle = "line" | "cubic"; +type TLDefaultFontStyle = "draw" | "mono" | "sans" | "serif"; +type TLDefaultHorizontalAlignStyle = + | "end-legacy" + | "end" + | "middle-legacy" + | "middle" + | "start-legacy" + | "start"; +type TLDefaultVerticalAlignStyle = "end" | "middle" | "start"; +type TLDefaultTextAlignStyle = "end" | "middle" | "start"; +type TLArrowShapeKind = "arc" | "elbow"; +type TLArrowShapeArrowheadStyle = + | "arrow" + | "bar" + | "diamond" + | "dot" + | "inverted" + | "none" + | "pipe" + | "square" + | "triangle"; +type TLGeoShapeGeoStyle = + | "arrow-down" + | "arrow-left" + | "arrow-right" + | "arrow-up" + | "check-box" + | "cloud" + | "diamond" + | "ellipse" + | "heart" + | "hexagon" + | "octagon" + | "oval" + | "pentagon" + | "rectangle" + | "rhombus" + | "rhombus-2" + | "star" + | "trapezoid" + | "triangle" + | "x-box"; +type TLOpacityType = number; +type TLPageId = RecordId; +type TLParentId = TLPageId | TLShapeId; +interface TLPage extends BaseRecord<"page", TLPageId> { + name: string; + index: IndexKey; + meta: JsonObject; +} + +interface TLLineShapePoint { + id: string; + index: IndexKey; + x: number; + y: number; +} + +interface TLGlobalShapePropsMap {} + +interface TLBaseShape { + readonly id: TLShapeId; + readonly typeName: "shape"; + type: Type; + x: number; + y: number; + rotation: number; + index: IndexKey; + parentId: TLParentId; + isLocked: boolean; + opacity: TLOpacityType; + props: Props; + meta: JsonObject; +} + +interface TLArrowShapeProps { + kind: TLArrowShapeKind; + labelColor: TLDefaultColorStyle; + color: TLDefaultColorStyle; + fill: TLDefaultFillStyle; + dash: TLDefaultDashStyle; + size: TLDefaultSizeStyle; + arrowheadStart: TLArrowShapeArrowheadStyle; + arrowheadEnd: TLArrowShapeArrowheadStyle; + font: TLDefaultFontStyle; + start: VecModel; + end: VecModel; + bend: number; + richText: TLRichText; + labelPosition: number; + scale: number; + elbowMidPoint: number; +} +type TLArrowShape = TLBaseShape<"arrow", TLArrowShapeProps>; + +interface TLBookmarkShapeProps { + w: number; + h: number; + assetId: TLAssetId | null; + url: string; +} + +type TLBookmarkShape = TLBaseShape<"bookmark", TLBookmarkShapeProps>; + +export interface TLDrawShapeProps { + color: TLDefaultColorStyle; + fill: TLDefaultFillStyle; + dash: TLDefaultDashStyle; + size: TLDefaultSizeStyle; + segments: TLDrawShapeSegment[]; + isComplete: boolean; + isClosed: boolean; + isPen: boolean; + scale: number; + scaleX: number; + scaleY: number; +} + +type TLDrawShape = TLBaseShape<"draw", TLDrawShapeProps>; + +interface TLEmbedShapeProps { + w: number; + h: number; + url: string; +} + +type TLEmbedShape = TLBaseShape<"embed", TLEmbedShapeProps>; + +interface TLFrameShapeProps { + w: number; + h: number; + name: string; + color: TLDefaultColorStyle; +} + +type TLFrameShape = TLBaseShape<"frame", TLFrameShapeProps>; + +interface TLGeoShapeProps { + geo: TLGeoShapeGeoStyle; + dash: TLDefaultDashStyle; + url: string; + w: number; + h: number; + growY: number; + scale: number; + labelColor: TLDefaultColorStyle; + color: TLDefaultColorStyle; + fill: TLDefaultFillStyle; + size: TLDefaultSizeStyle; + font: TLDefaultFontStyle; + align: TLDefaultHorizontalAlignStyle; + verticalAlign: TLDefaultVerticalAlignStyle; + richText: TLRichText; +} + +type TLGeoShape = TLBaseShape<"geo", TLGeoShapeProps>; + +interface TLGroupShapeProps {} + +type TLGroupShape = TLBaseShape<"group", TLGroupShapeProps>; + +interface TLDrawShapeSegment { + type: "free" | "straight"; + path: string; +} + +interface TLHighlightShapeProps { + color: TLDefaultColorStyle; + size: TLDefaultSizeStyle; + segments: TLDrawShapeSegment[]; + isComplete: boolean; + isPen: boolean; + scale: number; + scaleX: number; + scaleY: number; +} + +type TLHighlightShape = TLBaseShape<"highlight", TLHighlightShapeProps>; + +interface TLImageShapeProps { + w: number; + + h: number; + + playing: boolean; + + url: string; + + assetId: null | TLAssetId; + + crop: null | TLShapeCrop; + + flipX: boolean; + + flipY: boolean; + + altText: string; +} + +type TLImageShape = TLBaseShape<"image", TLImageShapeProps>; + +interface TLLineShapeProps { + color: TLDefaultColorStyle; + dash: TLDefaultDashStyle; + size: TLDefaultSizeStyle; + spline: TLLineShapeSplineStyle; + points: Record; + scale: number; +} + +type TLLineShape = TLBaseShape<"line", TLLineShapeProps>; + +interface TLNoteShapeProps { + color: TLDefaultColorStyle; + labelColor: TLDefaultColorStyle; + size: TLDefaultSizeStyle; + font: TLDefaultFontStyle; + fontSizeAdjustment: number; + align: TLDefaultHorizontalAlignStyle; + verticalAlign: TLDefaultVerticalAlignStyle; + growY: number; + url: string; + richText: TLRichText; + scale: number; +} + +type TLNoteShape = TLBaseShape<"note", TLNoteShapeProps>; + +interface TLTextShapeProps { + color: TLDefaultColorStyle; + size: TLDefaultSizeStyle; + font: TLDefaultFontStyle; + textAlign: TLDefaultTextAlignStyle; + w: number; + richText: TLRichText; + scale: number; + autoSize: boolean; +} + +type TLTextShape = TLBaseShape<"text", TLTextShapeProps>; + +interface TLVideoShapeProps { + w: number; + h: number; + time: number; + playing: boolean; + autoplay: boolean; + url: string; + assetId: null | TLAssetId; + altText: string; +} + +type TLVideoShape = TLBaseShape<"video", TLVideoShapeProps>; + +type TLDefaultShape = + | TLArrowShape + | TLBookmarkShape + | TLDrawShape + | TLEmbedShape + | TLFrameShape + | TLGeoShape + | TLGroupShape + | TLHighlightShape + | TLImageShape + | TLLineShape + | TLNoteShape + | TLTextShape + | TLVideoShape; + +type TLIndexedShapes = { + [K in + | keyof TLGlobalShapePropsMap + | TLDefaultShape["type"] as K extends TLDefaultShape["type"] + ? K extends "group" + ? K + : K extends keyof TLGlobalShapePropsMap + ? TLGlobalShapePropsMap[K] extends null | undefined + ? never + : K + : K + : K]: K extends "group" + ? Extract< + TLDefaultShape, + { + type: K; + } + > + : K extends TLDefaultShape["type"] + ? K extends keyof TLGlobalShapePropsMap + ? TLBaseShape + : Extract< + TLDefaultShape, + { + type: K; + } + > + : TLBaseShape; +}; + +type TLShape = + TLIndexedShapes[K]; + +interface BaseRecord< + TypeName extends string, + Id extends RecordId, +> { + readonly id: Id; + readonly typeName: TypeName; +} + +type UnknownRecord = BaseRecord>; + +type RecordId = string & { + __type__: R; +}; + +type TLShapeId = RecordId; + +type TLShapePartial = T extends T + ? { + id: TLShapeId; + meta?: Partial; + props?: Partial; + type: T["type"]; + } & Partial> + : never; + +interface TLGlobalShapePropsMap { + html: { + w: number; + h: number; + }; + container_section: { + w: number; + h: number; + }; + container: { + w: number; + h: number; + }; +} + +type Dimensions = { + w: number; + h: number; +}; + +export type ShapeWithDimensions = T & { + props: T["props"] & Dimensions; +}; + +export type ShapePartialWithDimensions = TLShapePartial< + ShapeWithDimensions +> & { + props: TLShapePartial>["props"] & Dimensions; +}; + +export function createShapeAtNearestAdjacentEmptyPosition< + N extends ShapeWithDimensions, +>({ + newShape: newShapePartial, +}: { + newShape: ShapePartialWithDimensions; +}): { + newShape: N; +} { + newShapePartial.props?.w; +}