@arizeai/openinference-instrumentation-openai 0.1.0 → 0.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -61,6 +61,17 @@ const instrumentation = new src_1.OpenAIInstrumentation();
61
61
  instrumentation.disable();
62
62
  const OpenAI = __importStar(require("openai"));
63
63
  const streaming_1 = require("openai/streaming");
64
+ // Function tools
65
+ function getCurrentLocation() {
66
+ return __awaiter(this, void 0, void 0, function* () {
67
+ return "Boston"; // Simulate lookup
68
+ });
69
+ }
70
+ function getWeather(_args) {
71
+ return __awaiter(this, void 0, void 0, function* () {
72
+ return { temperature: 52, precipitation: "rainy" };
73
+ });
74
+ }
64
75
  describe("OpenAIInstrumentation", () => {
65
76
  let openai;
66
77
  const memoryExporter = new sdk_trace_base_1.InMemorySpanExporter();
@@ -225,7 +236,7 @@ describe("OpenAIInstrumentation", () => {
225
236
  }));
226
237
  it("can handle streaming responses", () => __awaiter(void 0, void 0, void 0, function* () {
227
238
  var _a, e_1, _b, _c;
228
- // Mock out the embedding create endpoint
239
+ // Mock out the post endpoint to return a stream
229
240
  jest.spyOn(openai, "post").mockImplementation(
230
241
  // @ts-expect-error the response type is not correct - this is just for testing
231
242
  () => __awaiter(void 0, void 0, void 0, function* () {
@@ -375,17 +386,6 @@ describe("OpenAIInstrumentation", () => {
375
386
  () => __awaiter(void 0, void 0, void 0, function* () {
376
387
  return response3;
377
388
  }));
378
- // Function tools
379
- function getCurrentLocation() {
380
- return __awaiter(this, void 0, void 0, function* () {
381
- return "Boston"; // Simulate lookup
382
- });
383
- }
384
- function getWeather(_args) {
385
- return __awaiter(this, void 0, void 0, function* () {
386
- return { temperature: 52, precipitation: "rainy" };
387
- });
388
- }
389
389
  const messages = [];
390
390
  const runner = openai.beta.chat.completions
391
391
  .runTools({
@@ -470,35 +470,298 @@ describe("OpenAIInstrumentation", () => {
470
470
  `);
471
471
  expect(span3.name).toBe("OpenAI Chat Completions");
472
472
  expect(span3.attributes).toMatchInlineSnapshot(`
473
+ {
474
+ "input.mime_type": "application/json",
475
+ "input.value": "{"model":"gpt-3.5-turbo","messages":[{"role":"user","content":"How is the weather this week?"},{"role":"assistant","content":null,"tool_calls":[{"id":"call_5ERYvu4iTGSvDlcDQjDP3g3J","type":"function","function":{"name":"getCurrentLocation","arguments":"{}"}}]},{"role":"tool","tool_call_id":"call_5ERYvu4iTGSvDlcDQjDP3g3J","content":"Boston"},{"role":"assistant","content":null,"tool_calls":[{"id":"call_0LCdYLkdRUt3rV3dawoIFHBf","type":"function","function":{"name":"getWeather","arguments":"{\\n \\"location\\": \\"Boston\\"\\n}"}}]},{"role":"tool","tool_call_id":"call_0LCdYLkdRUt3rV3dawoIFHBf","content":"{\\"temperature\\":52,\\"precipitation\\":\\"rainy\\"}"}],"tools":[{"type":"function","function":{"name":"getCurrentLocation","parameters":{"type":"object","properties":{}},"description":"Get the current location of the user."}},{"type":"function","function":{"name":"getWeather","parameters":{"type":"object","properties":{"location":{"type":"string"}}},"description":"Get the weather for a location."}}],"tool_choice":"auto","stream":false}",
476
+ "llm.input_messages.0.message.content": "How is the weather this week?",
477
+ "llm.input_messages.0.message.role": "user",
478
+ "llm.input_messages.1.message.role": "assistant",
479
+ "llm.input_messages.1.message.tool_calls.0.tool_call.function.arguments": "{}",
480
+ "llm.input_messages.1.message.tool_calls.0.tool_call.function.name": "getCurrentLocation",
481
+ "llm.input_messages.2.message.content": "Boston",
482
+ "llm.input_messages.2.message.role": "tool",
483
+ "llm.input_messages.3.message.role": "assistant",
484
+ "llm.input_messages.3.message.tool_calls.0.tool_call.function.arguments": "{
485
+ "location": "Boston"
486
+ }",
487
+ "llm.input_messages.3.message.tool_calls.0.tool_call.function.name": "getWeather",
488
+ "llm.input_messages.4.message.content": "{"temperature":52,"precipitation":"rainy"}",
489
+ "llm.input_messages.4.message.role": "tool",
490
+ "llm.invocation_parameters": "{"model":"gpt-3.5-turbo","tools":[{"type":"function","function":{"name":"getCurrentLocation","parameters":{"type":"object","properties":{}},"description":"Get the current location of the user."}},{"type":"function","function":{"name":"getWeather","parameters":{"type":"object","properties":{"location":{"type":"string"}}},"description":"Get the weather for a location."}}],"tool_choice":"auto","stream":false}",
491
+ "llm.model_name": "gpt-3.5-turbo-0613",
492
+ "llm.output_messages.0.message.content": "The weather in Boston this week is expected to be rainy with a temperature of 52 degrees.",
493
+ "llm.output_messages.0.message.role": "assistant",
494
+ "llm.token_count.completion": 20,
495
+ "llm.token_count.prompt": 121,
496
+ "llm.token_count.total": 141,
497
+ "openinference.span.kind": "llm",
498
+ "output.mime_type": "application/json",
499
+ "output.value": "{"id":"chatcmpl-8hhtfzSD33tsG7XJiBg4F9MqnXKDp","object":"chat.completion","created":1705427535,"model":"gpt-3.5-turbo-0613","choices":[{"index":0,"message":{"role":"assistant","content":"The weather in Boston this week is expected to be rainy with a temperature of 52 degrees."},"logprobs":null,"finish_reason":"stop"}],"usage":{"prompt_tokens":121,"completion_tokens":20,"total_tokens":141},"system_fingerprint":null}",
500
+ }
501
+ `);
502
+ }));
503
+ it("should capture tool calls with streaming", () => __awaiter(void 0, void 0, void 0, function* () {
504
+ var _e, e_2, _f, _g;
505
+ jest.spyOn(openai, "post").mockImplementation(
506
+ // @ts-expect-error the response type is not correct - this is just for testing
507
+ () => __awaiter(void 0, void 0, void 0, function* () {
508
+ const iterator = () => (function () {
509
+ return __asyncGenerator(this, arguments, function* () {
510
+ yield yield __await({
511
+ id: "chatcmpl-8iA39kCtuVHIVDr9AnBdJZjgSjNWL",
512
+ object: "chat.completion.chunk",
513
+ created: 1705535755,
514
+ model: "gpt-3.5-turbo-0613",
515
+ system_fingerprint: null,
516
+ choices: [
517
+ {
518
+ index: 0,
519
+ delta: {
520
+ role: "assistant",
521
+ content: null,
522
+ tool_calls: [
523
+ {
524
+ index: 0,
525
+ id: "call_PGkcUg2u6vYrCpTn0e9ofykY",
526
+ type: "function",
527
+ function: { name: "getWeather", arguments: "" },
528
+ },
529
+ ],
530
+ },
531
+ logprobs: null,
532
+ finish_reason: null,
533
+ },
534
+ ],
535
+ });
536
+ yield yield __await({
537
+ id: "chatcmpl-8iA39kCtuVHIVDr9AnBdJZjgSjNWL",
538
+ object: "chat.completion.chunk",
539
+ created: 1705535755,
540
+ model: "gpt-3.5-turbo-0613",
541
+ system_fingerprint: null,
542
+ choices: [
543
+ {
544
+ index: 0,
545
+ delta: {
546
+ tool_calls: [{ index: 0, function: { arguments: "{}" } }],
547
+ },
548
+ logprobs: null,
549
+ finish_reason: null,
550
+ },
551
+ ],
552
+ });
553
+ yield yield __await({
554
+ id: "chatcmpl-8iA39kCtuVHIVDr9AnBdJZjgSjNWL",
555
+ object: "chat.completion.chunk",
556
+ created: 1705535755,
557
+ model: "gpt-3.5-turbo-0613",
558
+ system_fingerprint: null,
559
+ choices: [
560
+ {
561
+ index: 0,
562
+ delta: {},
563
+ logprobs: null,
564
+ finish_reason: "tool_calls",
565
+ },
566
+ ],
567
+ });
568
+ });
569
+ })();
570
+ const controller = new AbortController();
571
+ return new streaming_1.Stream(iterator, controller);
572
+ }));
573
+ const stream = yield openai.chat.completions.create({
574
+ messages: [{ role: "user", content: "What's the weather today?" }],
575
+ model: "gpt-3.5-turbo",
576
+ tools: [
577
+ {
578
+ type: "function",
579
+ function: {
580
+ name: "getCurrentLocation",
581
+ parameters: { type: "object", properties: {} },
582
+ description: "Get the current location of the user.",
583
+ },
584
+ },
585
+ {
586
+ type: "function",
587
+ function: {
588
+ name: "getWeather",
589
+ description: "Get the weather for a location.",
590
+ parameters: {
591
+ type: "object",
592
+ properties: {
593
+ location: { type: "string" },
594
+ },
595
+ },
596
+ },
597
+ },
598
+ ],
599
+ stream: true,
600
+ });
601
+ let response = "";
602
+ try {
603
+ for (var _h = true, stream_2 = __asyncValues(stream), stream_2_1; stream_2_1 = yield stream_2.next(), _e = stream_2_1.done, !_e; _h = true) {
604
+ _g = stream_2_1.value;
605
+ _h = false;
606
+ const chunk = _g;
607
+ if (chunk.choices[0].delta.content)
608
+ response += chunk.choices[0].delta.content;
609
+ }
610
+ }
611
+ catch (e_2_1) { e_2 = { error: e_2_1 }; }
612
+ finally {
613
+ try {
614
+ if (!_h && !_e && (_f = stream_2.return)) yield _f.call(stream_2);
615
+ }
616
+ finally { if (e_2) throw e_2.error; }
617
+ }
618
+ // When a tool is called, the content is empty
619
+ expect(response).toBe("");
620
+ const spans = memoryExporter.getFinishedSpans();
621
+ expect(spans.length).toBe(1);
622
+ const span = spans[0];
623
+ expect(span.name).toBe("OpenAI Chat Completions");
624
+ expect(span.attributes).toMatchInlineSnapshot(`
473
625
  {
474
626
  "input.mime_type": "application/json",
475
- "input.value": "{"model":"gpt-3.5-turbo","messages":[{"role":"user","content":"How is the weather this week?"},{"role":"assistant","content":null,"tool_calls":[{"id":"call_5ERYvu4iTGSvDlcDQjDP3g3J","type":"function","function":{"name":"getCurrentLocation","arguments":"{}"}}]},{"role":"tool","tool_call_id":"call_5ERYvu4iTGSvDlcDQjDP3g3J","content":"Boston"},{"role":"assistant","content":null,"tool_calls":[{"id":"call_0LCdYLkdRUt3rV3dawoIFHBf","type":"function","function":{"name":"getWeather","arguments":"{\\n \\"location\\": \\"Boston\\"\\n}"}}]},{"role":"tool","tool_call_id":"call_0LCdYLkdRUt3rV3dawoIFHBf","content":"{\\"temperature\\":52,\\"precipitation\\":\\"rainy\\"}"}],"tools":[{"type":"function","function":{"name":"getCurrentLocation","parameters":{"type":"object","properties":{}},"description":"Get the current location of the user."}},{"type":"function","function":{"name":"getWeather","parameters":{"type":"object","properties":{"location":{"type":"string"}}},"description":"Get the weather for a location."}}],"tool_choice":"auto","stream":false}",
476
- "llm.input_messages.0.message.content": "How is the weather this week?",
627
+ "input.value": "{"messages":[{"role":"user","content":"What's the weather today?"}],"model":"gpt-3.5-turbo","tools":[{"type":"function","function":{"name":"getCurrentLocation","parameters":{"type":"object","properties":{}},"description":"Get the current location of the user."}},{"type":"function","function":{"name":"getWeather","description":"Get the weather for a location.","parameters":{"type":"object","properties":{"location":{"type":"string"}}}}}],"stream":true}",
628
+ "llm.input_messages.0.message.content": "What's the weather today?",
477
629
  "llm.input_messages.0.message.role": "user",
478
- "llm.input_messages.1.message.role": "assistant",
479
- "llm.input_messages.1.message.tool_calls.0.tool_call.function.arguments": "{}",
480
- "llm.input_messages.1.message.tool_calls.0.tool_call.function.name": "getCurrentLocation",
481
- "llm.input_messages.2.message.content": "Boston",
482
- "llm.input_messages.2.message.role": "tool",
483
- "llm.input_messages.3.message.role": "assistant",
484
- "llm.input_messages.3.message.tool_calls.0.tool_call.function.arguments": "{
485
- "location": "Boston"
486
- }",
487
- "llm.input_messages.3.message.tool_calls.0.tool_call.function.name": "getWeather",
488
- "llm.input_messages.4.message.content": "{"temperature":52,"precipitation":"rainy"}",
489
- "llm.input_messages.4.message.role": "tool",
490
- "llm.invocation_parameters": "{"model":"gpt-3.5-turbo","tools":[{"type":"function","function":{"name":"getCurrentLocation","parameters":{"type":"object","properties":{}},"description":"Get the current location of the user."}},{"type":"function","function":{"name":"getWeather","parameters":{"type":"object","properties":{"location":{"type":"string"}}},"description":"Get the weather for a location."}}],"tool_choice":"auto","stream":false}",
491
- "llm.model_name": "gpt-3.5-turbo-0613",
492
- "llm.output_messages.0.message.content": "The weather in Boston this week is expected to be rainy with a temperature of 52 degrees.",
630
+ "llm.invocation_parameters": "{"model":"gpt-3.5-turbo","tools":[{"type":"function","function":{"name":"getCurrentLocation","parameters":{"type":"object","properties":{}},"description":"Get the current location of the user."}},{"type":"function","function":{"name":"getWeather","description":"Get the weather for a location.","parameters":{"type":"object","properties":{"location":{"type":"string"}}}}}],"stream":true}",
631
+ "llm.model_name": "gpt-3.5-turbo",
632
+ "llm.output_messages.0.message.content": "",
493
633
  "llm.output_messages.0.message.role": "assistant",
494
- "llm.token_count.completion": 20,
495
- "llm.token_count.prompt": 121,
496
- "llm.token_count.total": 141,
634
+ "llm.output_messages.0.message.tool_calls.0.tool_call.function.arguments": "{}",
635
+ "llm.output_messages.0.message.tool_calls.0.tool_call.function.name": "getWeather",
497
636
  "openinference.span.kind": "llm",
498
- "output.mime_type": "application/json",
499
- "output.value": "{"id":"chatcmpl-8hhtfzSD33tsG7XJiBg4F9MqnXKDp","object":"chat.completion","created":1705427535,"model":"gpt-3.5-turbo-0613","choices":[{"index":0,"message":{"role":"assistant","content":"The weather in Boston this week is expected to be rainy with a temperature of 52 degrees."},"logprobs":null,"finish_reason":"stop"}],"usage":{"prompt_tokens":121,"completion_tokens":20,"total_tokens":141},"system_fingerprint":null}",
637
+ "output.mime_type": "text/plain",
638
+ "output.value": "",
500
639
  }
501
640
  `);
502
641
  }));
642
+ it("should capture a function call with streaming", () => __awaiter(void 0, void 0, void 0, function* () {
643
+ var _j, e_3, _k, _l;
644
+ jest.spyOn(openai, "post").mockImplementation(
645
+ // @ts-expect-error the response type is not correct - this is just for testing
646
+ () => __awaiter(void 0, void 0, void 0, function* () {
647
+ const iterator = () => (function () {
648
+ return __asyncGenerator(this, arguments, function* () {
649
+ yield yield __await({
650
+ id: "chatcmpl-8iA39kCtuVHIVDr9AnBdJZjgSjNWL",
651
+ object: "chat.completion.chunk",
652
+ created: 1705535755,
653
+ model: "gpt-3.5-turbo-0613",
654
+ system_fingerprint: null,
655
+ choices: [
656
+ {
657
+ index: 0,
658
+ delta: {
659
+ role: "assistant",
660
+ content: null,
661
+ function_call: { name: "getWeather", arguments: "" },
662
+ },
663
+ logprobs: null,
664
+ finish_reason: null,
665
+ },
666
+ ],
667
+ });
668
+ yield yield __await({
669
+ id: "chatcmpl-8iA39kCtuVHIVDr9AnBdJZjgSjNWL",
670
+ object: "chat.completion.chunk",
671
+ created: 1705535755,
672
+ model: "gpt-3.5-turbo-0613",
673
+ system_fingerprint: null,
674
+ choices: [
675
+ {
676
+ index: 0,
677
+ delta: { function_call: { arguments: "{}" } },
678
+ logprobs: null,
679
+ finish_reason: null,
680
+ },
681
+ ],
682
+ });
683
+ yield yield __await({
684
+ id: "chatcmpl-8iA39kCtuVHIVDr9AnBdJZjgSjNWL",
685
+ object: "chat.completion.chunk",
686
+ created: 1705535755,
687
+ model: "gpt-3.5-turbo-0613",
688
+ system_fingerprint: null,
689
+ choices: [
690
+ {
691
+ index: 0,
692
+ delta: {},
693
+ logprobs: null,
694
+ finish_reason: "function_call",
695
+ },
696
+ ],
697
+ });
698
+ });
699
+ })();
700
+ const controller = new AbortController();
701
+ return new streaming_1.Stream(iterator, controller);
702
+ }));
703
+ const stream = yield openai.chat.completions.create({
704
+ messages: [{ role: "user", content: "What's the weather today?" }],
705
+ model: "gpt-3.5-turbo",
706
+ functions: [
707
+ {
708
+ name: "getWeather",
709
+ description: "Get the weather for a location.",
710
+ parameters: {
711
+ type: "object",
712
+ properties: {
713
+ location: { type: "string" },
714
+ },
715
+ },
716
+ },
717
+ {
718
+ name: "getCurrentLocation",
719
+ description: "Get the current location of the user.",
720
+ parameters: { type: "object", properties: {} },
721
+ },
722
+ ],
723
+ stream: true,
724
+ });
725
+ let response = "";
726
+ try {
727
+ for (var _m = true, stream_3 = __asyncValues(stream), stream_3_1; stream_3_1 = yield stream_3.next(), _j = stream_3_1.done, !_j; _m = true) {
728
+ _l = stream_3_1.value;
729
+ _m = false;
730
+ const chunk = _l;
731
+ if (chunk.choices[0].delta.content)
732
+ response += chunk.choices[0].delta.content;
733
+ }
734
+ }
735
+ catch (e_3_1) { e_3 = { error: e_3_1 }; }
736
+ finally {
737
+ try {
738
+ if (!_m && !_j && (_k = stream_3.return)) yield _k.call(stream_3);
739
+ }
740
+ finally { if (e_3) throw e_3.error; }
741
+ }
742
+ // When a tool is called, the content is empty
743
+ expect(response).toBe("");
744
+ const spans = memoryExporter.getFinishedSpans();
745
+ expect(spans.length).toBe(1);
746
+ const span = spans[0];
747
+ expect(span.name).toBe("OpenAI Chat Completions");
748
+ expect(span.attributes).toMatchInlineSnapshot(`
749
+ {
750
+ "input.mime_type": "application/json",
751
+ "input.value": "{"messages":[{"role":"user","content":"What's the weather today?"}],"model":"gpt-3.5-turbo","functions":[{"name":"getWeather","description":"Get the weather for a location.","parameters":{"type":"object","properties":{"location":{"type":"string"}}}},{"name":"getCurrentLocation","description":"Get the current location of the user.","parameters":{"type":"object","properties":{}}}],"stream":true}",
752
+ "llm.input_messages.0.message.content": "What's the weather today?",
753
+ "llm.input_messages.0.message.role": "user",
754
+ "llm.invocation_parameters": "{"model":"gpt-3.5-turbo","functions":[{"name":"getWeather","description":"Get the weather for a location.","parameters":{"type":"object","properties":{"location":{"type":"string"}}}},{"name":"getCurrentLocation","description":"Get the current location of the user.","parameters":{"type":"object","properties":{}}}],"stream":true}",
755
+ "llm.model_name": "gpt-3.5-turbo",
756
+ "llm.output_messages.0.message.content": "",
757
+ "llm.output_messages.0.message.function_call_arguments_json": "{}",
758
+ "llm.output_messages.0.message.function_call_name": "getWeather",
759
+ "llm.output_messages.0.message.role": "assistant",
760
+ "openinference.span.kind": "llm",
761
+ "output.mime_type": "text/plain",
762
+ "output.value": "",
763
+ }
764
+ `);
765
+ }));
503
766
  });
504
767
  //# sourceMappingURL=openai.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"openai.test.js","sourceRoot":"","sources":["../../test/openai.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"openai.test.js","sourceRoot":"","sources":["../../test/openai.test.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,gCAA+C;AAC/C,kEAGuC;AACvC,kEAAmE;AACnE,MAAM,cAAc,GAAG,IAAI,mCAAkB,EAAE,CAAC;AAChD,cAAc,CAAC,QAAQ,EAAE,CAAC;AAE1B,MAAM,eAAe,GAAG,IAAI,2BAAqB,EAAE,CAAC;AACpD,eAAe,CAAC,OAAO,EAAE,CAAC;AAE1B,+CAAiC;AACjC,gDAA0C;AAE1C,iBAAiB;AACjB,SAAe,kBAAkB;;QAC/B,OAAO,QAAQ,CAAC,CAAC,kBAAkB;IACrC,CAAC;CAAA;AAED,SAAe,UAAU,CAAC,KAA2B;;QACnD,OAAO,EAAE,WAAW,EAAE,EAAE,EAAE,aAAa,EAAE,OAAO,EAAE,CAAC;IACrD,CAAC;CAAA;AAED,QAAQ,CAAC,uBAAuB,EAAE,GAAG,EAAE;IACrC,IAAI,MAAqB,CAAC;IAE1B,MAAM,cAAc,GAAG,IAAI,qCAAoB,EAAE,CAAC;IAClD,MAAM,QAAQ,GAAG,IAAI,mCAAkB,EAAE,CAAC;IAC1C,QAAQ,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;IAE9B,eAAe,CAAC,iBAAiB,CAAC,cAAc,CAAC,CAAC;IAClD,cAAc,CAAC,gBAAgB,CAAC,IAAI,oCAAmB,CAAC,cAAc,CAAC,CAAC,CAAC;IACzE,iHAAiH;IACjH,eAAe,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,aAAa,GAAG,MAAM,CAAC;IAEnD,SAAS,CAAC,GAAG,EAAE;QACb,eAAe,CAAC,MAAM,EAAE,CAAC;QACzB,MAAM,GAAG,IAAI,MAAM,CAAC,MAAM,CAAC;YACzB,MAAM,EAAE,cAAc;SACvB,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IACH,QAAQ,CAAC,GAAG,EAAE;QACZ,eAAe,CAAC,OAAO,EAAE,CAAC;IAC5B,CAAC,CAAC,CAAC;IACH,UAAU,CAAC,GAAG,EAAE;QACd,cAAc,CAAC,KAAK,EAAE,CAAC;IACzB,CAAC,CAAC,CAAC;IACH,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,CAAC,aAAa,EAAE,CAAC;IACvB,CAAC,CAAC,CAAC;IACH,EAAE,CAAC,YAAY,EAAE,GAAG,EAAE;QACpB,MAAM,CACH,MAA6C,CAAC,oBAAoB,CACpE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACf,CAAC,CAAC,CAAC;IACH,EAAE,CAAC,qCAAqC,EAAE,GAAS,EAAE;QACnD,MAAM,QAAQ,GAAG;YACf,EAAE,EAAE,wCAAwC;YAC5C,MAAM,EAAE,iBAAiB;YACzB,OAAO,EAAE,UAAU;YACnB,KAAK,EAAE,oBAAoB;YAC3B,OAAO,EAAE;gBACP;oBACE,KAAK,EAAE,CAAC;oBACR,OAAO,EAAE;wBACP,IAAI,EAAE,WAAW;wBACjB,OAAO,EAAE,iBAAiB;qBAC3B;oBACD,QAAQ,EAAE,IAAI;oBACd,aAAa,EAAE,MAAM;iBACtB;aACF;YACD,KAAK,EAAE;gBACL,aAAa,EAAE,EAAE;gBACjB,iBAAiB,EAAE,CAAC;gBACpB,YAAY,EAAE,EAAE;aACjB;SACF,CAAC;QACF,yCAAyC;QACzC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,kBAAkB;QAC3C,+EAA+E;QAC/E,GAA2B,EAAE;YAC3B,OAAO,QAAQ,CAAC;QAClB,CAAC,CAAA,CACF,CAAC;QACF,MAAM,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC;YACnC,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,oBAAoB,EAAE,CAAC;YAC3D,KAAK,EAAE,eAAe;SACvB,CAAC,CAAC;QACH,MAAM,KAAK,GAAG,cAAc,CAAC,gBAAgB,EAAE,CAAC;QAChD,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC7B,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QACtB,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC;QAClD,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,qBAAqB,CAAC;;;;;;;;;;;;;;;;;KAiB7C,CAAC,CAAC;IACL,CAAC,CAAA,CAAC,CAAC;IACH,EAAE,CAAC,gCAAgC,EAAE,GAAS,EAAE;QAC9C,MAAM,QAAQ,GAAG;YACf,EAAE,EAAE,oCAAoC;YACxC,MAAM,EAAE,iBAAiB;YACzB,OAAO,EAAE,UAAU;YACnB,KAAK,EAAE,wBAAwB;YAC/B,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,gBAAgB;oBACtB,KAAK,EAAE,CAAC;oBACR,QAAQ,EAAE,IAAI;oBACd,aAAa,EAAE,MAAM;iBACtB;aACF;YACD,KAAK,EAAE,EAAE,aAAa,EAAE,EAAE,EAAE,iBAAiB,EAAE,CAAC,EAAE,YAAY,EAAE,EAAE,EAAE;SACrE,CAAC;QACF,oCAAoC;QACpC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,kBAAkB;QAC3C,+EAA+E;QAC/E,GAA2B,EAAE;YAC3B,OAAO,QAAQ,CAAC;QAClB,CAAC,CAAA,CACF,CAAC;QACF,MAAM,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC;YAC9B,MAAM,EAAE,oBAAoB;YAC5B,KAAK,EAAE,wBAAwB;SAChC,CAAC,CAAC;QACH,MAAM,KAAK,GAAG,cAAc,CAAC,gBAAgB,EAAE,CAAC;QAChD,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC7B,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QACtB,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;QAC7C,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,qBAAqB,CAAC;;;;;;;;;;;;;KAa7C,CAAC,CAAC;IACL,CAAC,CAAA,CAAC,CAAC;IACH,EAAE,CAAC,qCAAqC,EAAE,GAAS,EAAE;QACnD,MAAM,QAAQ,GAAG;YACf,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;SAChE,CAAC;QACF,yCAAyC;QACzC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,kBAAkB;QAC3C,+EAA+E;QAC/E,GAA2B,EAAE;YAC3B,OAAO,QAAQ,CAAC;QAClB,CAAC,CAAA,CACF,CAAC;QACF,MAAM,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC;YAC7B,KAAK,EAAE,gBAAgB;YACvB,KAAK,EAAE,wBAAwB;SAChC,CAAC,CAAC;QACH,MAAM,KAAK,GAAG,cAAc,CAAC,gBAAgB,EAAE,CAAC;QAChD,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC7B,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QACtB,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;QAC5C,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,qBAAqB,CAAC;;;;;;;;;;;;;KAa7C,CAAC,CAAC;IACL,CAAC,CAAA,CAAC,CAAC;IACH,EAAE,CAAC,gCAAgC,EAAE,GAAS,EAAE;;QAC9C,gDAAgD;QAChD,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,kBAAkB;QAC3C,+EAA+E;QAC/E,GAA2B,EAAE;YAC3B,MAAM,QAAQ,GAAG,GAAG,EAAE,CACpB,CAAC;;oBACC,oBAAM,EAAE,OAAO,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,UAAU,EAAE,EAAE,CAAC,EAAE,CAAA,CAAC;oBACxD,oBAAM,EAAE,OAAO,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,EAAE,CAAC,EAAE,CAAA,CAAC;oBACvD,oBAAM,EAAE,OAAO,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,aAAa,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,CAAA,CAAC;gBAC5D,CAAC;aAAA,CAAC,EAAE,CAAC;YACP,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;YACzC,OAAO,IAAI,kBAAM,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;QAC1C,CAAC,CAAA,CACF,CAAC;QACF,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC;YAClD,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,oBAAoB,EAAE,CAAC;YAC3D,KAAK,EAAE,eAAe;YACtB,MAAM,EAAE,IAAI;SACb,CAAC,CAAC;QAEH,IAAI,QAAQ,GAAG,EAAE,CAAC;;YAClB,KAA0B,eAAA,WAAA,cAAA,MAAM,CAAA,YAAA,4EAAE,CAAC;gBAAT,sBAAM;gBAAN,WAAM;gBAArB,MAAM,KAAK,KAAA,CAAA;gBACpB,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO;oBAChC,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC;YAC/C,CAAC;;;;;;;;;QACD,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;QACzC,MAAM,KAAK,GAAG,cAAc,CAAC,gBAAgB,EAAE,CAAC;QAChD,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC7B,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QACtB,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC;QAClD,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,qBAAqB,CAAC;;;;;;;;;;;;;;KAc7C,CAAC,CAAC;IACL,CAAC,CAAA,CAAC,CAAC;IACH,EAAE,CAAC,2BAA2B,EAAE,GAAS,EAAE;QACzC,yCAAyC;QACzC,MAAM,SAAS,GAAG;YAChB,EAAE,EAAE,wCAAwC;YAC5C,MAAM,EAAE,iBAAiB;YACzB,OAAO,EAAE,UAAU;YACnB,KAAK,EAAE,oBAAoB;YAC3B,OAAO,EAAE;gBACP;oBACE,KAAK,EAAE,CAAC;oBACR,OAAO,EAAE;wBACP,IAAI,EAAE,WAAW;wBACjB,OAAO,EAAE,IAAI;wBACb,UAAU,EAAE;4BACV;gCACE,EAAE,EAAE,+BAA+B;gCACnC,IAAI,EAAE,UAAU;gCAChB,QAAQ,EAAE,EAAE,IAAI,EAAE,oBAAoB,EAAE,SAAS,EAAE,IAAI,EAAE;6BAC1D;yBACF;qBACF;oBACD,QAAQ,EAAE,IAAI;oBACd,aAAa,EAAE,YAAY;iBAC5B;aACF;YACD,KAAK,EAAE,EAAE,aAAa,EAAE,EAAE,EAAE,iBAAiB,EAAE,CAAC,EAAE,YAAY,EAAE,EAAE,EAAE;YACpE,kBAAkB,EAAE,IAAI;SACzB,CAAC;QACF,MAAM,SAAS,GAAG;YAChB,EAAE,EAAE,wCAAwC;YAC5C,MAAM,EAAE,iBAAiB;YACzB,OAAO,EAAE,UAAU;YACnB,KAAK,EAAE,oBAAoB;YAC3B,OAAO,EAAE;gBACP;oBACE,KAAK,EAAE,CAAC;oBACR,OAAO,EAAE;wBACP,IAAI,EAAE,WAAW;wBACjB,OAAO,EAAE,IAAI;wBACb,UAAU,EAAE;4BACV;gCACE,EAAE,EAAE,+BAA+B;gCACnC,IAAI,EAAE,UAAU;gCAChB,QAAQ,EAAE;oCACR,IAAI,EAAE,YAAY;oCAClB,SAAS,EAAE,8BAA8B;iCAC1C;6BACF;yBACF;qBACF;oBACD,QAAQ,EAAE,IAAI;oBACd,aAAa,EAAE,YAAY;iBAC5B;aACF;YACD,KAAK,EAAE,EAAE,aAAa,EAAE,EAAE,EAAE,iBAAiB,EAAE,EAAE,EAAE,YAAY,EAAE,GAAG,EAAE;YACtE,kBAAkB,EAAE,IAAI;SACzB,CAAC;QACF,MAAM,SAAS,GAAG;YAChB,EAAE,EAAE,wCAAwC;YAC5C,MAAM,EAAE,iBAAiB;YACzB,OAAO,EAAE,UAAU;YACnB,KAAK,EAAE,oBAAoB;YAC3B,OAAO,EAAE;gBACP;oBACE,KAAK,EAAE,CAAC;oBACR,OAAO,EAAE;wBACP,IAAI,EAAE,WAAW;wBACjB,OAAO,EACL,2FAA2F;qBAC9F;oBACD,QAAQ,EAAE,IAAI;oBACd,aAAa,EAAE,MAAM;iBACtB;aACF;YACD,KAAK,EAAE,EAAE,aAAa,EAAE,GAAG,EAAE,iBAAiB,EAAE,EAAE,EAAE,YAAY,EAAE,GAAG,EAAE;YACvE,kBAAkB,EAAE,IAAI;SACzB,CAAC;QACF,IAAI;aACD,KAAK,CAAC,MAAM,EAAE,MAAM,CAAC;aACrB,sBAAsB;QACrB,+EAA+E;QAC/E,GAA2B,EAAE;YAC3B,OAAO,SAAS,CAAC;QACnB,CAAC,CAAA,CACF;aACA,sBAAsB;QACrB,+EAA+E;QAC/E,GAA2B,EAAE;YAC3B,OAAO,SAAS,CAAC;QACnB,CAAC,CAAA,CACF;aACA,sBAAsB;QACrB,+EAA+E;QAC/E,GAA2B,EAAE;YAC3B,OAAO,SAAS,CAAC;QACnB,CAAC,CAAA,CACF,CAAC;QAEJ,MAAM,QAAQ,GAAG,EAAE,CAAC;QACpB,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW;aACxC,QAAQ,CAAC;YACR,KAAK,EAAE,eAAe;YACtB,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,+BAA+B,EAAE,CAAC;YACtE,KAAK,EAAE;gBACL;oBACE,IAAI,EAAE,UAAU;oBAChB,QAAQ,EAAE;wBACR,QAAQ,EAAE,kBAAkB;wBAC5B,UAAU,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,EAAE,EAAE;wBAC9C,WAAW,EAAE,uCAAuC;qBACrD;iBACF;gBACD;oBACE,IAAI,EAAE,UAAU;oBAChB,QAAQ,EAAE;wBACR,QAAQ,EAAE,UAAU;wBACpB,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,6DAA6D;wBAChF,WAAW,EAAE,iCAAiC;wBAC9C,UAAU,EAAE;4BACV,IAAI,EAAE,QAAQ;4BACd,UAAU,EAAE;gCACV,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;6BAC7B;yBACF;qBACF;iBACF;aACF;SACF,CAAC;aACD,EAAE,CAAC,SAAS,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;QAEtD,MAAM,aAAa,GAAG,MAAM,MAAM,CAAC,YAAY,EAAE,CAAC;QAClD,MAAM,KAAK,GAAG,cAAc,CAAC,gBAAgB,EAAE,CAAC;QAChD,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC7B,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,GAAG,KAAK,CAAC;QACpC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC;QACnD,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,qBAAqB,CAAC;;;;;;;;;;;;;;;;;;KAkB9C,CAAC,CAAC;QACH,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC;QACnD,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,qBAAqB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;KAyB9C,CAAC,CAAC;QACH,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC;QACnD,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,qBAAqB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KA6B9C,CAAC,CAAC;IACL,CAAC,CAAA,CAAC,CAAC;IACH,EAAE,CAAC,0CAA0C,EAAE,GAAS,EAAE;;QACxD,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,kBAAkB;QAC3C,+EAA+E;QAC/E,GAA2B,EAAE;YAC3B,MAAM,QAAQ,GAAG,GAAG,EAAE,CACpB,CAAC;;oBACC,oBAAM;wBACJ,EAAE,EAAE,wCAAwC;wBAC5C,MAAM,EAAE,uBAAuB;wBAC/B,OAAO,EAAE,UAAU;wBACnB,KAAK,EAAE,oBAAoB;wBAC3B,kBAAkB,EAAE,IAAI;wBACxB,OAAO,EAAE;4BACP;gCACE,KAAK,EAAE,CAAC;gCACR,KAAK,EAAE;oCACL,IAAI,EAAE,WAAW;oCACjB,OAAO,EAAE,IAAI;oCACb,UAAU,EAAE;wCACV;4CACE,KAAK,EAAE,CAAC;4CACR,EAAE,EAAE,+BAA+B;4CACnC,IAAI,EAAE,UAAU;4CAChB,QAAQ,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,SAAS,EAAE,EAAE,EAAE;yCAChD;qCACF;iCACF;gCACD,QAAQ,EAAE,IAAI;gCACd,aAAa,EAAE,IAAI;6BACpB;yBACF;qBACF,CAAA,CAAC;oBACF,oBAAM;wBACJ,EAAE,EAAE,wCAAwC;wBAC5C,MAAM,EAAE,uBAAuB;wBAC/B,OAAO,EAAE,UAAU;wBACnB,KAAK,EAAE,oBAAoB;wBAC3B,kBAAkB,EAAE,IAAI;wBACxB,OAAO,EAAE;4BACP;gCACE,KAAK,EAAE,CAAC;gCACR,KAAK,EAAE;oCACL,UAAU,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,EAAE,CAAC;iCAC1D;gCACD,QAAQ,EAAE,IAAI;gCACd,aAAa,EAAE,IAAI;6BACpB;yBACF;qBACF,CAAA,CAAC;oBACF,oBAAM;wBACJ,EAAE,EAAE,wCAAwC;wBAC5C,MAAM,EAAE,uBAAuB;wBAC/B,OAAO,EAAE,UAAU;wBACnB,KAAK,EAAE,oBAAoB;wBAC3B,kBAAkB,EAAE,IAAI;wBACxB,OAAO,EAAE;4BACP;gCACE,KAAK,EAAE,CAAC;gCACR,KAAK,EAAE,EAAE;gCACT,QAAQ,EAAE,IAAI;gCACd,aAAa,EAAE,YAAY;6BAC5B;yBACF;qBACF,CAAA,CAAC;gBACJ,CAAC;aAAA,CAAC,EAAE,CAAC;YACP,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;YACzC,OAAO,IAAI,kBAAM,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;QAC1C,CAAC,CAAA,CACF,CAAC;QACF,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC;YAClD,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,2BAA2B,EAAE,CAAC;YAClE,KAAK,EAAE,eAAe;YACtB,KAAK,EAAE;gBACL;oBACE,IAAI,EAAE,UAAU;oBAChB,QAAQ,EAAE;wBACR,IAAI,EAAE,oBAAoB;wBAC1B,UAAU,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,EAAE,EAAE;wBAC9C,WAAW,EAAE,uCAAuC;qBACrD;iBACF;gBACD;oBACE,IAAI,EAAE,UAAU;oBAChB,QAAQ,EAAE;wBACR,IAAI,EAAE,YAAY;wBAClB,WAAW,EAAE,iCAAiC;wBAC9C,UAAU,EAAE;4BACV,IAAI,EAAE,QAAQ;4BACd,UAAU,EAAE;gCACV,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;6BAC7B;yBACF;qBACF;iBACF;aACF;YACD,MAAM,EAAE,IAAI;SACb,CAAC,CAAC;QAEH,IAAI,QAAQ,GAAG,EAAE,CAAC;;YAClB,KAA0B,eAAA,WAAA,cAAA,MAAM,CAAA,YAAA,4EAAE,CAAC;gBAAT,sBAAM;gBAAN,WAAM;gBAArB,MAAM,KAAK,KAAA,CAAA;gBACpB,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO;oBAChC,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC;YAC/C,CAAC;;;;;;;;;QACD,8CAA8C;QAC9C,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAC1B,MAAM,KAAK,GAAG,cAAc,CAAC,gBAAgB,EAAE,CAAC;QAChD,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC7B,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QACtB,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC;QAClD,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,qBAAqB,CAAC;;;;;;;;;;;;;;;;CAgBjD,CAAC,CAAC;IACD,CAAC,CAAA,CAAC,CAAC;IACH,EAAE,CAAC,+CAA+C,EAAE,GAAS,EAAE;;QAC7D,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,kBAAkB;QAC3C,+EAA+E;QAC/E,GAA2B,EAAE;YAC3B,MAAM,QAAQ,GAAG,GAAG,EAAE,CACpB,CAAC;;oBACC,oBAAM;wBACJ,EAAE,EAAE,wCAAwC;wBAC5C,MAAM,EAAE,uBAAuB;wBAC/B,OAAO,EAAE,UAAU;wBACnB,KAAK,EAAE,oBAAoB;wBAC3B,kBAAkB,EAAE,IAAI;wBACxB,OAAO,EAAE;4BACP;gCACE,KAAK,EAAE,CAAC;gCACR,KAAK,EAAE;oCACL,IAAI,EAAE,WAAW;oCACjB,OAAO,EAAE,IAAI;oCACb,aAAa,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,SAAS,EAAE,EAAE,EAAE;iCACrD;gCACD,QAAQ,EAAE,IAAI;gCACd,aAAa,EAAE,IAAI;6BACpB;yBACF;qBACF,CAAA,CAAC;oBACF,oBAAM;wBACJ,EAAE,EAAE,wCAAwC;wBAC5C,MAAM,EAAE,uBAAuB;wBAC/B,OAAO,EAAE,UAAU;wBACnB,KAAK,EAAE,oBAAoB;wBAC3B,kBAAkB,EAAE,IAAI;wBACxB,OAAO,EAAE;4BACP;gCACE,KAAK,EAAE,CAAC;gCACR,KAAK,EAAE,EAAE,aAAa,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,EAAE;gCAC7C,QAAQ,EAAE,IAAI;gCACd,aAAa,EAAE,IAAI;6BACpB;yBACF;qBACF,CAAA,CAAC;oBACF,oBAAM;wBACJ,EAAE,EAAE,wCAAwC;wBAC5C,MAAM,EAAE,uBAAuB;wBAC/B,OAAO,EAAE,UAAU;wBACnB,KAAK,EAAE,oBAAoB;wBAC3B,kBAAkB,EAAE,IAAI;wBACxB,OAAO,EAAE;4BACP;gCACE,KAAK,EAAE,CAAC;gCACR,KAAK,EAAE,EAAE;gCACT,QAAQ,EAAE,IAAI;gCACd,aAAa,EAAE,eAAe;6BAC/B;yBACF;qBACF,CAAA,CAAC;gBACJ,CAAC;aAAA,CAAC,EAAE,CAAC;YACP,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;YACzC,OAAO,IAAI,kBAAM,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;QAC1C,CAAC,CAAA,CACF,CAAC;QACF,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC;YAClD,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,2BAA2B,EAAE,CAAC;YAClE,KAAK,EAAE,eAAe;YACtB,SAAS,EAAE;gBACT;oBACE,IAAI,EAAE,YAAY;oBAClB,WAAW,EAAE,iCAAiC;oBAC9C,UAAU,EAAE;wBACV,IAAI,EAAE,QAAQ;wBACd,UAAU,EAAE;4BACV,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;yBAC7B;qBACF;iBACF;gBACD;oBACE,IAAI,EAAE,oBAAoB;oBAC1B,WAAW,EAAE,uCAAuC;oBACpD,UAAU,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,EAAE,EAAE;iBAC/C;aACF;YACD,MAAM,EAAE,IAAI;SACb,CAAC,CAAC;QAEH,IAAI,QAAQ,GAAG,EAAE,CAAC;;YAClB,KAA0B,eAAA,WAAA,cAAA,MAAM,CAAA,YAAA,4EAAE,CAAC;gBAAT,sBAAM;gBAAN,WAAM;gBAArB,MAAM,KAAK,KAAA,CAAA;gBACpB,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO;oBAChC,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC;YAC/C,CAAC;;;;;;;;;QACD,8CAA8C;QAC9C,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAC1B,MAAM,KAAK,GAAG,cAAc,CAAC,gBAAgB,EAAE,CAAC;QAChD,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC7B,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QACtB,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC;QAClD,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,qBAAqB,CAAC;;;;;;;;;;;;;;;;GAgB/C,CAAC,CAAC;IACH,CAAC,CAAA,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}