From f2a6492ab7bbe411c1ee5bf622f6ebc75aa01cf1 Mon Sep 17 00:00:00 2001 From: Pierre Jacquier Date: Sat, 22 Feb 2025 08:09:54 -0500 Subject: [PATCH] Set apperance in feature tree context menu (#5439) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Revert "Revert multi-profile (#4812)" This reverts commit efe8089b08dd8bdade517f04ace2c81a5e096434. * fix poor 1000ms wait UX * A snapshot a day keeps the bugs away! 📷🐛 (OS: ubuntu-latest-8-cores) * trigger CI * Add Rust side artifacts for startSketchOn face or plane (#4834) * Add Rust side artifacts for startSketchOn face or plane * move ast digging --------- Co-authored-by: Kurt Hutten Irev-Dev * lint * lint * A snapshot a day keeps the bugs away! 📷🐛 (OS: namespace-profile-macos-8-cores) * A snapshot a day keeps the bugs away! 📷🐛 (OS: namespace-profile-ubuntu-8-cores) * A snapshot a day keeps the bugs away! 📷🐛 (OS: windows-16-cores) * trigger CI * chore: disabled file watcher which prevents faster file write (#4835) * A snapshot a day keeps the bugs away! 📷🐛 (OS: namespace-profile-ubuntu-8-cores) * partial fixes * A snapshot a day keeps the bugs away! 📷🐛 (OS: namespace-profile-ubuntu-8-cores) * Trigger CI * A snapshot a day keeps the bugs away! 📷🐛 (OS: namespace-profile-ubuntu-8-cores) * Trigger CI * Fix up all the tests * Fix partial execution * wip * WIP * wip * rust changes to make three point confrom to same as others since we're not ready with name params yet * most of the fix for 3 point circle * get overlays working for circle three point * fmt * fix types * cargo fmt * add face codef ref for walls and caps * fix sketch on face after updates to rust side artifact graph * some things needed for multi-profile tests * bad attempts at fixing rust * more * more * fix rust * more rust fixes * overlay fix * remove duplicate test * A snapshot a day keeps the bugs away! 📷🐛 (OS: namespace-profile-ubuntu-8-cores) * lint and typing * maybe fix a unit test * small thing * WIP: Add Delete right click menu item to Feature Tree Copying code around Fixes #5090 * I don't know why it works * WIP * fix circ dep * fix unit test * fix some tests * A snapshot a day keeps the bugs away! 📷🐛 (OS: namespace-profile-ubuntu-8-cores) * A snapshot a day keeps the bugs away! 📷🐛 (OS: namespace-profile-ubuntu-8-cores) * Working deletion machine loo * Working helix deletion * Extend deletion to more things * A snapshot a day keeps the bugs away! 📷🐛 (OS: namespace-profile-ubuntu-8-cores) * A snapshot a day keeps the bugs away! 📷🐛 (OS: namespace-profile-ubuntu-8-cores) * fix sweep point-and-click test * fix more tests and add a fix me * fix more tests * fix electron specific test * tsc * more test tweaks * update docs * commint snaps? * is clippy happy now? * clippy again * test works now without me changing anything big-fixed-itself * small bug * make three point have cross hair to make it consistent with othe rtools * fix up state diagram * fmt * add draft point for first click of three point circ * 1 test for three point circle * 2 test for three point circle * clean up * A snapshot a day keeps the bugs away! 📷🐛 (OS: namespace-profile-ubuntu-8-cores) * A snapshot a day keeps the bugs away! 📷🐛 (OS: namespace-profile-ubuntu-8-cores) * remove bad doc comment * remove test skip * remove onboarding test changes * Update src/lang/modifyAst.ts Co-authored-by: Jonathan Tran * Update output from simulation tests * Fix to use correct source ranges This also reduces cloning. * Change back to skipping face cap none and both * Update output after changing back to skipping none and both * Fix clippy warning * fix profile start snap bug * WIP: migrate to actor * add path ids to cap * fix going into edit sketch * make other startSketchOn's work * fix snapshot test * explain function name * Update src/lib/rectangleTool.ts Co-authored-by: Frank Noirot * rename error * remove file tree from diff * Update src/clientSideScene/segments.ts Co-authored-by: Frank Noirot * nit * Continue actor migration * Prevent double write to KCL code on revolve * Clean up * Update output after adding cap-to-path graph edge * Clean up * Update machine diag * Update context menu hotkey class * Fix edit/select sketch-on-cap via feature tree * clean up for face codeRef * fix changing tools part way through circle/rect tools * fix delete of circle profile * fix close profiles * fix closing profile bug (tangentArcTo being ignored) * remove stale comment * Delete paths associated with sketch when the sketch plane is deleted * Add support for deleting sketches on caps (not walls) * get delet working for walls * make delet of extrusions work for multi profile * A snapshot a day keeps the bugs away! 📷🐛 (OS: namespace-profile-ubuntu-8-cores) * Delete the sketch statement too on the cap and wall cases * Don't write to file in `split-sketch-pipe-if-needed` unless necessary * Don't wait for file write to complete within `updateEditorWithAstAndWriteToFile` It is already debounced internally. If we await it, we will have to wait for a debounced timeout * Fix bad conflict resolution * Fix a few things post merge * Add guard back, fixing tests * A snapshot a day keeps the bugs away! 📷🐛 (OS: namespace-profile-ubuntu-8-cores) * A snapshot a day keeps the bugs away! 📷🐛 (OS: namespace-profile-ubuntu-8-cores) * Add e2e test * WIP: Add Set apperance right click menu item to Feature Tree Fixes #5372 * Working cheap implementation * Unset appearance via Default option * More colors * Add basic test * Add test * Lint * :hocho: them timers * Increase color matching threshold on appearance test * Fix colors in e2e * Move Set apperance down in the menu * Revert "Move Set apperance down in the menu" This reverts commit eb1d2e2c1c5423e8af3f58898359a29100f80beb. * Attempt at fixing dual extrude for role option search in test --------- Co-authored-by: Kurt Hutten Irev-Dev Co-authored-by: github-actions[bot] Co-authored-by: Jonathan Tran Co-authored-by: Kevin Nadro Co-authored-by: 49lf Co-authored-by: Frank Noirot Co-authored-by: Frank Noirot --- e2e/playwright/command-bar-tests.spec.ts | 8 +- e2e/playwright/point-click.spec.ts | 103 ++++++++++++++++++ ...e-with-none-z-up-1-Google-Chrome-linux.png | Bin 78035 -> 77998 bytes ...-load---solid-2d-1-Google-Chrome-linux.png | Bin 51792 -> 51767 bytes .../ModelingPanes/FeatureTreePane.tsx | 19 ++++ src/lang/modifyAst/addEdgeTreatment.ts | 6 +- src/lang/modifyAst/setAppearance.ts | 70 ++++++++++++ .../modelingCommandConfig.ts | 48 +++++++- src/lib/constants.ts | 3 + src/lib/operations.ts | 40 +++++++ src/machines/featureTreeMachine.ts | 94 +++++++++++++++- src/machines/modelingMachine.ts | 61 +++++++++++ 12 files changed, 444 insertions(+), 8 deletions(-) create mode 100644 src/lang/modifyAst/setAppearance.ts diff --git a/e2e/playwright/command-bar-tests.spec.ts b/e2e/playwright/command-bar-tests.spec.ts index fc8ca0bce..a0f900b94 100644 --- a/e2e/playwright/command-bar-tests.spec.ts +++ b/e2e/playwright/command-bar-tests.spec.ts @@ -219,7 +219,11 @@ test.describe('Command bar tests', { tag: ['@skipWin'] }, () => { } ) - test('Can extrude from the command bar', async ({ page, homePage }) => { + test('Can extrude from the command bar', async ({ + page, + homePage, + cmdBar, + }) => { await page.addInitScript(async () => { localStorage.setItem( 'persistCode', @@ -254,7 +258,7 @@ test.describe('Command bar tests', { tag: ['@skipWin'] }, () => { await expect(cmdSearchBar).toBeVisible() // Search for extrude command and choose it - await page.getByRole('option', { name: 'Extrude' }).click() + await cmdBar.cmdOptions.getByText('Extrude').click() // Assert that we're on the selection step await expect(page.getByRole('button', { name: 'selection' })).toBeDisabled() diff --git a/e2e/playwright/point-click.spec.ts b/e2e/playwright/point-click.spec.ts index a4fb9bfb0..b90fd114b 100644 --- a/e2e/playwright/point-click.spec.ts +++ b/e2e/playwright/point-click.spec.ts @@ -2796,4 +2796,107 @@ radius = 8.69 expect(editor.expectEditor.toContain(newCodeToFind)).toBeTruthy() }) }) + + test(`Set appearance`, async ({ + context, + page, + homePage, + scene, + editor, + toolbar, + cmdBar, + }) => { + const initialCode = `sketch001 = startSketchOn('XZ') +profile001 = circle({ + center = [0, 0], + radius = 100 +}, sketch001) +extrude001 = extrude(profile001, length = 100) +` + await context.addInitScript((initialCode) => { + localStorage.setItem('persistCode', initialCode) + }, initialCode) + await page.setBodyDimensions({ width: 1000, height: 500 }) + await homePage.goToModelingScene() + await scene.waitForExecutionDone() + + // One dumb hardcoded screen pixel value + const testPoint = { x: 500, y: 250 } + const initialColor: [number, number, number] = [135, 135, 135] + + await test.step(`Confirm extrude exists with default appearance`, async () => { + await toolbar.closePane('code') + await scene.expectPixelColor(initialColor, testPoint, 15) + }) + + async function setApperanceAndCheck( + option: string, + hex: string, + shapeColor: [number, number, number] + ) { + await toolbar.openPane('feature-tree') + const operationButton = await toolbar.getFeatureTreeOperation( + 'Extrude', + 0 + ) + await operationButton.click({ button: 'right' }) + const menuButton = page.getByTestId('context-menu-set-appearance') + await menuButton.click() + await cmdBar.expectState({ + commandName: 'Appearance', + currentArgKey: 'color', + currentArgValue: '', + headerArguments: { + Color: '', + }, + highlightedHeaderArg: 'color', + stage: 'arguments', + }) + const item = page.getByText(option, { exact: true }) + await item.click() + await cmdBar.expectState({ + commandName: 'Appearance', + headerArguments: { + Color: hex, + }, + stage: 'review', + }) + await cmdBar.progressCmdBar() + await toolbar.closePane('feature-tree') + await scene.expectPixelColor(shapeColor, testPoint, 40) + await toolbar.openPane('code') + if (hex === 'default') { + const anyAppearanceDeclaration = `|> appearance(` + await editor.expectEditor.not.toContain(anyAppearanceDeclaration) + } else { + const declaration = `|> appearance(%, color = '${hex}')` + await editor.expectEditor.toContain(declaration) + // TODO: fix selection range after appearance update + // await editor.expectState({ + // diagnostics: [], + // activeLines: [declaration], + // highlightedCode: '', + // }) + } + await toolbar.closePane('code') + } + + await test.step(`Go through the Set Appearance flow for all options`, async () => { + await setApperanceAndCheck('Red', '#FF0000', [180, 0, 0]) + await setApperanceAndCheck('Green', '#00FF00', [0, 180, 0]) + await setApperanceAndCheck('Blue', '#0000FF', [0, 0, 180]) + await setApperanceAndCheck('Turquoise', '#00FFFF', [0, 180, 180]) + await setApperanceAndCheck('Purple', '#FF00FF', [180, 0, 180]) + await setApperanceAndCheck('Yellow', '#FFFF00', [180, 180, 0]) + await setApperanceAndCheck('Black', '#000000', [0, 0, 0]) + await setApperanceAndCheck('Dark Grey', '#080808', [10, 10, 10]) + await setApperanceAndCheck('Light Grey', '#D3D3D3', [190, 190, 190]) + await setApperanceAndCheck('White', '#FFFFFF', [200, 200, 200]) + await setApperanceAndCheck( + 'Default (clear appearance)', + 'default', + initialColor + ) + }) + }) }) diff --git a/e2e/playwright/snapshot-tests.spec.ts-snapshots/Sketch-on-face-with-none-z-up-1-Google-Chrome-linux.png b/e2e/playwright/snapshot-tests.spec.ts-snapshots/Sketch-on-face-with-none-z-up-1-Google-Chrome-linux.png index e244fafc662eeca097f626e9dda42b71af85b3c7..94d57705096dcf40b4fb5944ef393df5454d7cd7 100644 GIT binary patch delta 73330 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 z�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 delta 73396 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 O3z-p!$Df*>iT(#F-_&OS diff --git a/e2e/playwright/snapshot-tests.spec.ts-snapshots/Zoom-to-fit-on-load---solid-2d-1-Google-Chrome-linux.png b/e2e/playwright/snapshot-tests.spec.ts-snapshots/Zoom-to-fit-on-load---solid-2d-1-Google-Chrome-linux.png index a6cab619a2b1412b3d5d8adc56bd763b6a4d7568..3bb852179404d4901c7a72c52d52ef78f6aff0c9 100644 GIT binary patch delta 19464 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 delta 19489 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 diff --git a/src/components/ModelingSidebar/ModelingPanes/FeatureTreePane.tsx b/src/components/ModelingSidebar/ModelingPanes/FeatureTreePane.tsx index c7f68bb60..984fe1b21 100644 --- a/src/components/ModelingSidebar/ModelingPanes/FeatureTreePane.tsx +++ b/src/components/ModelingSidebar/ModelingPanes/FeatureTreePane.tsx @@ -324,6 +324,18 @@ const OperationItem = (props: { } } + function enterAppearanceFlow() { + if (props.item.type === 'StdLibCall') { + props.send({ + type: 'enterAppearanceFlow', + data: { + targetSourceRange: sourceRangeFromRust(props.item.sourceRange), + currentOperation: props.item, + }, + }) + } + } + function deleteOperation() { if ( props.item.type === 'StdLibCall' || @@ -380,6 +392,13 @@ const OperationItem = (props: { : []), ...(props.item.type === 'StdLibCall' ? [ + + Set appearance + , ( node, pathToExtrudeNode, @@ -427,7 +427,7 @@ function locateExtrudeDeclarator( return new Error('Extrude must be a PipeExpression or CallExpression') } - return { extrudeDeclarator } + return { extrudeDeclarator, shallowPath: nodeOfExtrudeCall.shallowPath } } function getPathToNodeOfEdgeTreatmentLiteral( diff --git a/src/lang/modifyAst/setAppearance.ts b/src/lang/modifyAst/setAppearance.ts new file mode 100644 index 000000000..6ccfeca19 --- /dev/null +++ b/src/lang/modifyAst/setAppearance.ts @@ -0,0 +1,70 @@ +import { PathToNode, Program } from 'lang/wasm' +import { Node } from 'wasm-lib/kcl/bindings/Node' +import { locateExtrudeDeclarator } from './addEdgeTreatment' +import { err } from 'lib/trap' +import { + createCallExpressionStdLibKw, + createLabeledArg, + createLiteral, + createPipeExpression, +} from 'lang/modifyAst' +import { createPipeSubstitution } from 'lang/modifyAst' +import { COMMAND_APPEARANCE_COLOR_DEFAULT } from 'lib/commandBarConfigs/modelingCommandConfig' + +export function setAppearance({ + ast, + nodeToEdit, + color, +}: { + ast: Node + nodeToEdit: PathToNode + color: string +}): Error | { modifiedAst: Node; pathToNode: PathToNode } { + const modifiedAst = structuredClone(ast) + + // Locate the call (not necessarily an extrude here) + const result = locateExtrudeDeclarator(modifiedAst, nodeToEdit) + if (err(result)) { + return result + } + + const declarator = result.extrudeDeclarator + const call = createCallExpressionStdLibKw( + 'appearance', + createPipeSubstitution(), + [createLabeledArg('color', createLiteral(color))] + ) + // Modify the expression + if ( + declarator.init.type === 'CallExpression' || + declarator.init.type === 'CallExpressionKw' + ) { + // 1. case when no appearance exists, mutate in place + declarator.init = createPipeExpression([declarator.init, call]) + } else if (declarator.init.type === 'PipeExpression') { + // 2. case when appearance exists or extrude in sketch pipe + const existingIndex = declarator.init.body.findIndex( + (v) => + v.type === 'CallExpressionKw' && + v.callee.type === 'Identifier' && + v.callee.name === 'appearance' + ) + if (existingIndex > -1) { + if (color === COMMAND_APPEARANCE_COLOR_DEFAULT) { + // Special case of unsetting the appearance aka deleting the node + declarator.init.body.splice(existingIndex, 1) + } else { + declarator.init.body[existingIndex] = call + } + } else { + declarator.init.body.push(call) + } + } else { + return new Error('Unsupported operation type.') + } + + return { + modifiedAst, + pathToNode: result.shallowPath, + } +} diff --git a/src/lib/commandBarConfigs/modelingCommandConfig.ts b/src/lib/commandBarConfigs/modelingCommandConfig.ts index da5d198c9..fac354b20 100644 --- a/src/lib/commandBarConfigs/modelingCommandConfig.ts +++ b/src/lib/commandBarConfigs/modelingCommandConfig.ts @@ -3,7 +3,11 @@ import { angleLengthInfo } from 'components/Toolbar/setAngleLength' import { transformAstSketchLines } from 'lang/std/sketchcombos' import { PathToNode } from 'lang/wasm' import { StateMachineCommandSetConfig, KclCommandValue } from 'lib/commandTypes' -import { KCL_DEFAULT_LENGTH, KCL_DEFAULT_DEGREE } from 'lib/constants' +import { + KCL_DEFAULT_LENGTH, + KCL_DEFAULT_DEGREE, + KCL_DEFAULT_COLOR, +} from 'lib/constants' import { components } from 'lib/machine-api' import { Selections } from 'lib/selections' import { kclManager } from 'lib/singletons' @@ -28,6 +32,8 @@ export const EXTRUSION_RESULTS = [ 'intersect', ] as const +export const COMMAND_APPEARANCE_COLOR_DEFAULT = 'default' + export type ModelingCommandSchema = { 'Enter sketch': {} Export: { @@ -107,6 +113,10 @@ export type ModelingCommandSchema = { selection: Selections } 'Delete selection': {} + Appearance: { + nodeToEdit?: PathToNode + color: string + } } export const modelingMachineCommandConfig: StateMachineCommandSetConfig< @@ -664,4 +674,40 @@ export const modelingMachineCommandConfig: StateMachineCommandSetConfig< }, }, }, + Appearance: { + description: + 'Set the appearance of a solid. This only works on solids, not sketches or individual paths.', + icon: 'extrude', + needsReview: true, + args: { + nodeToEdit: { + description: + 'Path to the node in the AST to edit. Never shown to the user.', + skip: true, + inputType: 'text', + required: false, + }, + color: { + inputType: 'options', + required: true, + options: [ + { name: 'Red', value: '#FF0000' }, + { name: 'Green', value: '#00FF00' }, + { name: 'Blue', value: '#0000FF' }, + { name: 'Turquoise', value: '#00FFFF' }, + { name: 'Purple', value: '#FF00FF' }, + { name: 'Yellow', value: '#FFFF00' }, + { name: 'Black', value: '#000000' }, + { name: 'Dark Grey', value: '#080808' }, + { name: 'Light Grey', value: '#D3D3D3' }, + { name: 'White', value: '#FFFFFF' }, + { + name: 'Default (clear appearance)', + value: COMMAND_APPEARANCE_COLOR_DEFAULT, + }, + ], + }, + // Add more fields + }, + }, } diff --git a/src/lib/constants.ts b/src/lib/constants.ts index cdf89b01e..19d2d144d 100644 --- a/src/lib/constants.ts +++ b/src/lib/constants.ts @@ -66,6 +66,9 @@ export const KCL_DEFAULT_LENGTH = `5` /** The default KCL degree expression */ export const KCL_DEFAULT_DEGREE = `360` +/** The default KCL color expression */ +export const KCL_DEFAULT_COLOR = `#3c73ff` + /** localStorage key for the playwright test-specific app settings file */ export const TEST_SETTINGS_FILE_KEY = 'playwright-test-settings' diff --git a/src/lib/operations.ts b/src/lib/operations.ts index d3f8ba6a9..c38a4aa0b 100644 --- a/src/lib/operations.ts +++ b/src/lib/operations.ts @@ -33,6 +33,7 @@ interface StdLibCallInfo { | ExecuteCommandEventPayload | PrepareToEditCallback | PrepareToEditFailurePayload + supportsAppearance?: boolean } /** @@ -204,6 +205,7 @@ export const stdLibMap: Record = { label: 'Extrude', icon: 'extrude', prepareToEdit: prepareToEditExtrude, + supportsAppearance: true, }, fillet: { label: 'Fillet', @@ -228,6 +230,7 @@ export const stdLibMap: Record = { loft: { label: 'Loft', icon: 'loft', + supportsAppearance: true, }, offsetPlane: { label: 'Offset Plane', @@ -253,10 +256,12 @@ export const stdLibMap: Record = { revolve: { label: 'Revolve', icon: 'revolve', + supportsAppearance: true, }, shell: { label: 'Shell', icon: 'shell', + supportsAppearance: true, }, startSketchOn: { label: 'Sketch', @@ -280,6 +285,7 @@ export const stdLibMap: Record = { sweep: { label: 'Sweep', icon: 'sweep', + supportsAppearance: true, }, } @@ -432,3 +438,37 @@ export async function enterEditFlow({ 'Feature tree editing not yet supported for this operation. Please edit in the code editor.' ) } + +export async function enterAppearanceFlow({ + operation, + artifact, +}: EnterEditFlowProps): Promise { + if (operation.type !== 'StdLibCall') { + return new Error( + 'Appearance setting not yet supported for user-defined functions. Please edit in the code editor.' + ) + } + const stdLibInfo = stdLibMap[operation.name] + + if (stdLibInfo && stdLibInfo.supportsAppearance) { + const argDefaultValues = { + nodeToEdit: getNodePathFromSourceRange( + kclManager.ast, + sourceRangeFromRust(operation.sourceRange) + ), + } + console.log('argDefaultValues', argDefaultValues) + return { + type: 'Find and select command', + data: { + name: 'Appearance', + groupId: 'modeling', + argDefaultValues, + }, + } + } + + return new Error( + 'Appearance setting not yet supported for this operation. Please edit in the code editor.' + ) +} diff --git a/src/machines/featureTreeMachine.ts b/src/machines/featureTreeMachine.ts index 614762775..6a5c6617c 100644 --- a/src/machines/featureTreeMachine.ts +++ b/src/machines/featureTreeMachine.ts @@ -1,6 +1,10 @@ import { Artifact, getArtifactFromRange } from 'lang/std/artifactGraph' import { SourceRange } from 'lang/wasm' -import { enterEditFlow, EnterEditFlowProps } from 'lib/operations' +import { + enterAppearanceFlow, + enterEditFlow, + EnterEditFlowProps, +} from 'lib/operations' import { engineCommandManager, kclManager } from 'lib/singletons' import { err } from 'lib/trap' import toast from 'react-hot-toast' @@ -30,6 +34,10 @@ type FeatureTreeEvent = type: 'enterEditFlow' data: { targetSourceRange: SourceRange; currentOperation: Operation } } + | { + type: 'enterAppearanceFlow' + data: { targetSourceRange: SourceRange; currentOperation: Operation } + } | { type: 'goToError' } | { type: 'codePaneOpened' } | { type: 'selected' } @@ -75,6 +83,29 @@ export const featureTreeMachine = setup({ }) } ), + prepareAppearanceCommand: fromPromise( + ({ + input, + }: { + input: EnterEditFlowProps & { + commandBarSend: (typeof commandBarActor)['send'] + } + }) => { + return new Promise((resolve, reject) => { + const { commandBarSend, ...editFlowProps } = input + enterAppearanceFlow(editFlowProps) + .then((result) => { + if (err(result)) { + reject(result) + return + } + input.commandBarSend(result) + resolve(result) + }) + .catch(reject) + }) + } + ), sendDeleteCommand: fromPromise( ({ input, @@ -138,7 +169,7 @@ export const featureTreeMachine = setup({ sendDeleteSelection: () => {}, }, }).createMachine({ - /** @xstate-layout N4IgpgJg5mDOIC5QFkD2EwBsCWA7KAxAMICGuAxlgNoAMAuoqAA6qzYAu2qujIAHogC0ANhoBWAHQAOAMwB2KQEY5AFgCcGqWqkAaEAE9Ew0RLEqa64TIBMKmTUXCAvk71oMOfAQDKYdgAJYLDByTm5aBiQQFjYwniiBBEFFcSkJGUVFFWs5NRsxMWE1PUMENUk1ORSVYWyCpSkxFzd0LDxCXwCAW1QAVyDA9hJ2MAjeGI4ueNBE5Joi6S0zHKkamWKDRBkxOVNGvJVstWFZFWaQdzavTv9ybhG+djGoibjeWerdrTspX8UGlS6TYIWoyCTHMRZMQ0fI2aznS6eDp+fy+KBdMC4AIAeQAbmAAE6YEj6WDPZisSbcd5CTI0NSmdT0uQKawnNQqEqISE0CS2WpFcRsmwyBGtJHETEjAm3EgYgkkfzcQLBUJTcnRSlvKKlQSFazSKxqFLCOTQwFAxIyKTCRQSf5qZkOGhmtRijztCTYCCYMAEACiWMJgQA1n5yAALDWvKY0pLWSESdQyW0OKS2NQJrkIOTWBkKBRSFk2lSKBPuq5QL0+v2B6Wh8NRxSRCmxWMJITWWwSVknayKSq-YRiazZ4x2gqQxwqHbaY0VpHV30Bx4E3oYaNa9szIRibQSYTWenG-mVDalHKH9L-OTGM0phee73LgBKYFxqEw+M3bepHaShQMocijQhodjbEU2bKAU6QsvyYhwkoziuBc4pPjWPgAO5gGATA-lS0z8LuHLSJU4ggccNRFtmCYJkm5gcmW9hSDQ8IoYi6HLgAMqgABmTz0OMW5-juAGrD2uYwrYt4pI0NH9gamQ2gUxp5NaZzsWh+BLn63gRlgmD4dqol6r89o0A4xgyDYjgODRdI9kcCjTtkNSPtpz5+gAYtgmC+gJLaar+hGzGIRbSDIM4pr8SGcsCtgWAe9gqHINCrKxjoaS0HoeRhRARnKvGEkZ25EUkoh2qIDhmCx-wnHFF5WCo4LaIC5TQvMhTuVWnkriwBIBUJwVxnquZ8tYWiHmlCYWKOwIgTBLonFZkIJre3U6QQyAkGGJUiWVo1gtFZZFKsh55FBhxgsskIsmpD6aTlPUYQAIsEIwqr6arhIJLzCSFQjpmkd6HLeLI1MI2b2Os405JFsjHGaTSPZWm0ACpgI8gjsKgghEAAgi9e0AwBqg9loSjrFd2RQZFvJaJm9SFIcpYbb12K8bxQQBEwxK4KMv2tgRI22s1jTVcOZYpOIUEaAac6ZPYuQsnIooo4uvUABJtHwxMjWFaQ-KltgFOI2w0b8DIwo6VkOqobMYQACgSqBdEw7DY7jkAcHr-4iN2HLrDkE1mmyig0fYFT5CbA6HNYavZajnkSBG3pgI7fNwAQ+MDdgvEkKE-hQAqTARv4LBML0xIjBAvsmaIki1CxqipYCwdQfMzXRc5UW2rYDu+hIsARqgmEZ2QWc55w+eF8XJCl-4YBu5wkB1wde5pGaqg5FUbLG1B-bAxY5SZnvqvIYni7eGG7CRsQZCUJg1+NmviQpJF6Rsnm2wWZFUGZLsBCRQsjWRqilDaz9b4RgIG9fyYAVToilK-RAUIJCdyLDkR0XYYTZkEPHSQE09zW1NLmEOECb53zuBgReEAOD+AgL0Ak7QGxQOQQgTIeQewOFaixco9I5qlF4aYeORYGY2i7G6dWnpIGRgkDIiMABJDC20wwIIxFifw+Jc7kBIIZQWQVhb-kVkBSyeR36VHkLTdQPZ-hlkaMYVmUjtLyLkRQxRyidrwKCIgjRI8mEAC97i6LYZkLs0gcgzjNjkLIB8UrgisCxCGVE2KX2kW41xjYlHLiINwWA7AFR4H8H47AgSsS6PodgPJD8BaBRjPtN+KQDRhwWgmQEw5IbxWsgaFKKYYTqAieQxsGSoFZL9Dk3AeSCm4E0YSTgOjMAVKqRQGpQ1DGiUyMoe0VQiipVTBkeS9JwTZBDkoNKmYL6oSesM2R8jRnEFyfkkghT8YACFvD+AABohMUNZA8hRenbCYueRAE1jSwQtJHY4FlkapOcek25eUHlTP8K895ABNb5vyajS1yBBHBwJ7B0RAcOGo2R5CKEGVA657jslIqedMsgUBfTfLBaIPe6xtBlh2DRK6B5bwnBdJlHIlKbluLueMyZ9L-C+nwOwKM+i6kkyUpIMKhwzAFC7LaIEF5Jz2iLCOZkZ0sqXNRi4hFtKJmPMKUwQkNrcC0PIFXEgMpaFLMoCEpaNilA7HTP8F0DUQVmjtD8liFkzTN3AU4qsZqxWIstci4ppShh+X0P4XR2AoC4G+ZkNBLJrJLQQghS6I4bHrGhDJAcIqIzUvFXSwpWi5m6MwKm9Nmbvk5D+coDMKZIoCJQfqNBgqHDbNFlWmtcbJWFNgLgee-gcafO+baJM6YSXrAaGFWWCgDx2FvMcKmGgLkcThUM81Yy63TOnbO+dGKFX-TjJkJdeZIRWBAqlUCNE0pgmOH2JYKRjTGqPdG+FsaLWTumWAAAjr0cpMqoByu+aWHs1lDyrQNRYKCxhhDSEBOYewjoByHq0kBk9IGz3xqlUwZ1TbqC3uGkY6CfIZxrFqJmAcUFfjNVYkoB0-YqhhTHae+55HCkEiXqgfEtxz3sDJLRtZZU-1YdkD84dFgUhiCgmDJMP944QyqBkATpGCBvkEJjEIvQRghIQs1Ul-ZGa-EIdmPIkgbzCkhAhSKcgDOZIwlQ+B3sAgMKYfgFhkYWVglSgOVYvDQJ9oQEWXkZZ+wpRZLaB0XmRkTqtdMzCHAy4zoxBATRujegrL+nR9ZZZrPmG9UoPIlQobKEU6WLsM5-g7HS5GO5kZGXwJxp+NhbIZxJiKPDEbqgA05hIgoEc+bDxvopVG6lEh8aYSeQERNQSFmuqGMs-weBeKoAIBAbgYAvS4A-GGCQMAPYbbKZgQQ+3UADZAgaYwI4CgUUzBN-BWGcj8KmhNVYY6VtraKagAJm3Fk7coHt3AB2CCEhdgSCQvNhgHYJF0K7fhBC3eTQ9uHT3ZPGTKv2BC6QumFFvDN4cEd-hJjCqlayNprRSGB6tuhDbsDzKh9U2H8Pjv8zOxd0713BCc-mfjg7z2TAQWHD6vT5R5JHj5GpD7d4NAJxNVfdJIOOezK5+U7bvPHsI4JEjlH1d0eY9F+L3RkvCe1Lvf+fsS7WI1AsHueX9kt1hXkOIbIA4Fps9B6iz5fPDsC9O3gYXWOPYkAAEawEEHwe30vmraDSilU02w2QdIvBTUwYVIQcmMK0gDRGlu64CKHj54fTfm9R+wK3sfBAJ6Tynx70vG4jlzPh4+NQLYlpS2aW01p5CEauS4qvKK3n+DRXXyPQvUCXdF23wQ+hU9E9KokF3zUdju5+cmfsMgoa-3BMoM2tpjBKGD3Q0P8+TeI-BxbtH4PrfY7XxvzvW-6kgscAQ0lFdcRX4E-AlaWZdFLEcVYDQSRWFYjKlafRlX0BfE7JfFfD-fAX0TfR3crEnf-UwAcDPU0OcbVEFZMdINpVTb4coW-AIJA+BR-M3Z-RvZvVfTAsAbA1ZYnHfRwLDU+CxMwT9OSeKKKUwDIbPCaUsMwYHJgXmVNWDOVSTYTLEI7VA6PZfU7fGbwNGQQO4ZQwQBQ+VHAuTHgqwTteOE+UsdQdTeKQ8O0QELII8MtayTMGQuQ6VTEODMuPQsDdgevZgy3N-ZbbQ3Q89Awzw+DH-EmXfa8TMGEA2UsYFBANaK2FiPcGaDkGEWg8uW1TEB1J1F1SpaHBggnVQwXdQ9Aj2G1AkO1fI4kAkQQI3ZZTgsrEwv-HNZQKoVKWac6UAi8GScmcoIoKwDId7bI6o2ornAonnXbRghvQIjHFvCYvIqY+oxooo6pFooWbg9o4NFkC-Ho7+GiPTQYwCEYl7GFLXNJIZLiPAXrVAT8AgbrfAe4-rKIuMIOSqNKXMU4c+OQDTa0AgklFKHYZDTXQDJbW4-mOdB4zACQBRXADgbOCAQrKpAacuVAPAQaVonYhAC0AhL+WwHTRnf+D+O8LsFMOXfYMdKE14uEhEpE0gZZPRYw3EhMWoCg-1GbCRdDeaCwXYL7LIUsUEXDGku4mEz8CQXAN-XRYgTAVgLxNxNhQENKcaaWGcDkaEYQ0oH5HNFKQ4PsekU2cvSfdJWkiUuEnyRE4ecuF2XiXyP0RfCo07bmXoJgXQnAKUQQNgDAb0txb0sAHxaTOQZUpWaQQsHdXg-sA+MFIsZyeYZQAcfjRbFxc0vrS0vASpMuJgO0h0-w5HFgoI10908gT0rEb0tOP0xsAMoM2AEM94-8UGNIRwRoQ4IY0JWJBkcWD3FuI8LIlM9JBkvwthR0MEJuZ9GoHYcGf+KoHsBMRobeJaNKMdIcggKgZsLg7fRAPILDDZU0ctUBJQA+DtYBeYLsRLS4iElxNGHrLEbAcpZ1cgGEp4gqF4i05U2SFXBGLQflRXPk5XNkb1SwYvW0MdG8l4u8h8gkJ8nGeExEvw8ZTgXAErRePgIo5hHMviB05U4BL8zo1iPpPolBNlTtViZiRoGwVnAcoZcCmASChZR8mEqUmUzAOUhUkLIwzc3-PE3eQdPIKoZTdQJI5QG0caffDINSAcFJK449KlWiqUe8hi6Cpiq0rM20rC5cJ087DQoePwN0j07AL0n0jg2Af07xdRaTYQZUo8O0bBMwW8DUxwDDfcHtW0CESmLqaiuS28zgKCmC1ACQVSm0zC+05cJ-AshYzHYsgyoyys0y6s8yqUWAKyhs0SVrQ2f5BQY0Q8eODTcQdIBxIsECLIf-MdXoe1VAQYZ1dgeRbEXAMoqPbSy7LQnQ8q47b0oYAaWqrNVK+TdMMERwEvYCaJSEDuOnSoYqpLeQDBMdN8UIegi0l8nrd83qq0U0BLVVTuMwBadjFkenDIcwMbfsuApbOanbJlOk5bdnJCqAFUPQwrO4AkfmAkAgIKsuUTea9g5U7QeWDkWQN7QHcOMA+QRYDIVKSaTVCfU1dJM6ha9Mq6tbZhcHDNPAZEwrD6865A5GqAPAb69MaQSrIcIkzIC2bIdIF0MGlKVSKik6lxWG9gi0wKzM4eSAfwemi6hqtAl0vSksssj2YyqsqBGsiymTVkrcvEiaO0b4yKcoVkerAleYK2BwzU40YhWakITGy6kgFE5hCABUfifwDG+gzm503Sj2fSvWkgfiQQI2r61axAdQaxMiyOVYfsGJBWmoT+RwH5RiQOTzLy2Rdm5A+G7W2hYLS2g222jm8Kl-JvIs7HC2-Wj2KO5le2vE+wO0aKUsNKMweQWLPMF0PlPMR0BCUc46mS+A2RIgKUYMIOukpat89MgbIqvkF0ZQaa8QBQPPFBRiPVXMH5SEQEZM2m9JauoMGUOuxmqvZhR656165m7wmumUFO0rbY8W6EewUwTlQ4eYINeSWQbDR2uxekaFMdMe+sSe+G6e4LbG1G-GFE24Jew2jWha2+nqsW7i6ELIQ0fBdKAjb7M5e0HYPcOwAoBys+p+y+2Epm60-SQrc+2ul+9gk2pq7m9gfS0swy8sgW+KoWxKrEWAaway2c-9Lug9GcGwi8ZDLhWaWOBMEBiB8etmpBi6xm0O+hJOx+phlelBmPbmQQROq2j2Sgcem2lh1Oj+kmL+6zRnZiYgyxeKf4NIF0PMccCLFkRhi+8RrWh+iOgIER+sHhmOwsxY-hwR62gxwkMRz6i66yzhbYA9Q8hueyTZQoJuZTCyLPMdUssAMgQIauP0EJL+cJHeqmH2jQDuaxVyBSJQGSGmiupbcZTnYLedfLVm3EYrR0tQ1BiQEgPJCVLLAAOTlEgAADVMnnt45P41I4jpZSCEBRjG4shd4Rwchboz7uBknbrUmSnCsMnMASt8zY7m88n2ACmplimCtymBnV6DE2SfkBreFHaAagbSgRRN4shxARxMxVBlBsifCstn6egJMDmplpNeGdL2rTn6UxHjmODrmsTKnXtEs4J5AGINMl1-htghKQJjB5wA7q1p8Hnplccm19ALnLsrmwjQWU1ntrEasLB+rekJsmJmzzybRUpVIrB9nz0ZltEwWIXTsoX9DbdYW07SdAE6Q-qMh0xYsFnJB0o5Y1oqdwSK8p9rqlCwMwcIc7tm000cBM1CWJBiWwMcdkak0wXW8BX36uLojNmkNIyyLbQFBLohsUwIlUhbAy0cXlC8XG0U1+WM16qtKY8RWssxd9d5lm0pWjWnm+V7B6RshUgWQoJBDyYsgf0Nlh6En2XQdgXAgZ0mAYTPkhWzWplvTA3PZk84W0hWz6g8g2RMxN0JxzAapTRv4JodWuXL0g3r1Q3cZgWI354o39BnszADxHRtkKTqsP0rxVBrYPsVJrIs3DnINoMFlDD83Qj9C227dDC4WEtQHjhjQFAbAUXhwDRCgixRiqasgW3kVKMFQ-IsAu3C3F3qMWTZW4wKX7R2TMEt4sx5oixmo5cmQ2yoQTToahl8plq0ZYS9suY1y07rRchDRagBxppSUD5oR6JrRRBRiWyz7XyYB-A73PwH3YA1yNycTxaX2uyHEP30wv35pmJf2bQYRiqTggPb37285IOqBrBJGPiix4P33HQkPahaZjA0P-3MP4mrzR7gP4EwOFk8O1yZAiP-w4O33EjP3KP5pXIaOMPn16O2XGOcPwO2OqAVBOPRJuObQyO+OUW24hOAOsOAWJAb23yWOIO1yxBZOyp5OEPyP+QUW3Wrp0O1OgcNOtOQOdOpPhADOrQSOePEPTPXX9wLPaORPL3tdr3sBoLg7YSG6QOm7yWQC+Q-0bQpLsV2M4lREbY+xR9-aR7-PAvLrr7bq360bbgAufGlQmEcaZWYPP6LIsNPdrDcx32oYN4VdooThzQh6z68ugvJTMu2btbsB+h57YHcv0u2Fy0DQ87QUdhQQiKGnXb0hGg9wCNYnahmv0vGa3rWaiAWusnyicnorMHYrfTcHIxhakqVBiGBSbA90LJlB5a1nZBJBVYN5ch6HVAoa-OqVVvFuQ6dbw7OHyA1uhWzH3S9HdC1uBv5gjpGIOpQY7AoZwauFMXj3jYQIFv8v3uw7bq9G+ufGhmTGoqE7-uk7Af+u07wI98qWPd0wi0CU9x8wdz-UKbxBsPtPoHYBeYOAbqOLy5sAbVfvmf+b-SmAOeOC85BB+ZIBV406HReRQSWNxBmQbAxwJoxLpqnDoCUufXxOGfJSmecB2BWe9vsz+fMfIqh5ufBb9u+ebUHteIhecIMBa4xfIoVV2oEx1gQIUxsw9xdgFoPd5yfaFtUuXumPQPGeea2f0dFqTWdKtu+aKzduzLAyRa15Sh+k9hQUnNCgfa9Ad8+NTAc626FAcNWXTTr2A+WOza3SQ-wdFrjHDfI+sH+a4rY-ayE+HbMxk+GZtg0-1gM-A0QJs-xYuios7BEfg6IxRN4EWAsTFrnjQvYTlSPdwQwZKeTlu68TBO2UrBZpS7LyxO0ukeR+cIMSJ+r7rrmF7SCQ8kD+VD77CtT-z-x+sRvr8qwpok8wzR+lKGHaIkuEwEHEOQh-es9+x+mJDREf0RrBYgg91C-n4Sv53VuAhWO-tiTXrcULQWGa0GbG9T0grA2YcCAaDSK1A-sFMWAqrx37D9R+kAthh91R5fc1uc6AAZAN+449GiePb7ul2xgADBA8A76hkFIg-ljkO6CbCzF5Avp1W8gKoOXQY7ED-+pA+AVPWP4pNU4BIOAUAL8JvV0eJA-fhwMJ4F4qoHUNxhyiwGFAVU+6ayNpj-40CpBSgpbgvVZrMDd+5grEvQPQa81a+0fEyg3xFpiBju26TuA4SFCrMHaU7NBIeHkAQQ6YW-QvlAn8DSl-AM8XSKqACxgB84VcHmJnDYTJBygheUfJRAnbu1Gov2bPJOBHBlhz4G0MgNgC6DDBmE86VHPzCFalDyhIwKNjEOVKiVVaI7MCEmXG57wew2eFphkE7glDES9QyoZVWqF+gq+r+RYnUOGAcEcYggJoWLzoiDZiwMIdMByFvBQxKgSUOOJFmf5PdPQUw1nvOkxjoUwBbiWoYMOmFRtdezQvgn+jCgpBfmwxMcFeAsDkQjwtENIgMLKEVCUmlVY4XkmYS68DeEwzHAcJmG4xrh5LRKOdwwFUk+42YaAvRFcjGA0BI4DaPjFkLNpmEmMfJOuHW6NUY8OItcBgHxh5J3As-VuqmCsBWBcUCjfot-WkjFUbAlkaQotgxFyFsRq4PEcCLjqLEiReI0kewHJGE9eQR4KkT2lpH-F4oeaNBJCFkD2YWRvnT0OyKxE31OY3McuJnCFZ8QuYfgcePzEFHCinOWwCoMpj-Y1B8My-AcKlFMD8ouUdgbIHsO0gqj9ASNdUSiFGE8jm8Oo7mPqLACGj0AbCFMHsHUAgRvi9IGKB+hSAFU-cw4OEKCXRGYjXRwWfSDgD4BCtUx2APgAGNt7GiEAP7BNgmDay2B7Mfg5IkWBQGaoPcOVYIYmI5EpidYXooIpmOzFkjAxadAsfGOLEWhoy8UJzLu17xiiKSqsOsaqNuqwBsIuEX7pOKYA5jlSKqC0esD7iQh7Ay-btPaGSzDgqgFoX-myKTGAiZxTY0xjOLnGE9fsSjWyD3kaT1MnehscQlYQcCuQC+qMF0cwnlL8QhW749gKeLzF7g+Qh4VYCyAKBxjOhF+NBG1EHBpRMgBQUccmNupfijxmOL8T+K3b-hhw4IayP0n1Tko2Q8kb+m7h2BJZTkw4WCYCNTGsVw+l2Fmn5BQklcpGimS2EKT-Q50pRF4eYM2VeHBwvmbIUiWAPImISh45E2iYgJJhLpqRESQsKrAUguNJ2vSFdI4QQgq8ISr44LKFX8hCs1JfgYSXM3XoClMos4XeMlDLEiJOM5aKSG7RTBKSK8Kk26ppL8LjDeRmOOydpMVRxgwoB4IIZFFLCOEqcPKTet-AdBcofavE26t1i6BFQXqlE07GFIikuSnccnNIO5VqDZ0WMuVWwjmi-i5BTkB6aSspP3HBYYphIASYVIJBxTcCVoBkDSPrbiwjUBQGiCSki5Hg5YCEHeCFP8DOxXY7sKNv5l+69B48XQDgOwJdjLwTMtCBATpO4rbA0E4hcQraE37mx4oE0LDHn1WG2Rwaz4xcDZPanDSupswnqQ5ObywA+pA0qojtI9j+YgxN3eIlBOHSWS1xcIcEE4TsCSEFOVkq5FtNgR+AvEcQqYKG3ehgBfAX0OIGVLaLsJN4E0bYG80VqqAbQNEA9PaChQrAe8uYNqZ9I+hBAgZv0g6UEQ8BfTAZGtKYCDNxIDgkwFkBKJOXJRFDT8P7E4FVyNCtZjgLgFCNKQwDwAoggGVCSZArEeTxsYMR7sv0EAPTpszkRSQ3FykV5PInMg6FuLQQ1N0wFkEuvUy0C8gRZmeboi6FE5XJk4qcDAH6LZkiSRYhyekC4Xlkn0N080DhOGXOQ2hMwlMQgRCWTjDxR4esqWbMBzyDFMiY+QVMJVYgEJ0BL-DWSjIBauzEAqsBkOUBf5hiUw6qV1q3zAi94HWmsq9lSlPQhz2ERYoEmO1bgjhjApJCXnuGMF3hm2GnafDCxmIw5HsacxMlhmHA-VSwNgLohHHl63g6YfuUFNZz96yJp8pLcuSUQOxVzVYvIaao0CWBBCVWijUSnHEkIdQRK2RGvOHgHmIYM6lQFKPLKzwWxTQ4ZHccfAa5KjZKXcjlvfgXl0T709bRyLmDgi2APWrErYOd23SUkQeJsJ0ZXUBYcsFqlck+UYlUBggosMUAEOsJEJDYr55QEsFyhdBuE+WhhTlllnYADzASOVbyRYQyB-x4ooJSLgrLbrMRIo4xXIvalWLOpe5x8g2V-PyrVRIZSHY0McTpw-Jcgdhb4PHDFLQl0yacuoF2QjLkpS8ZYz4PaHTYZhDq2zRhZdSHIsLvJSYb9HmHobJR3+7CH2l4OHHZ4YQb05ObIjTLQNpSGOXRGnOhBhJ5yxoSiqrBSi0wOiDjCJC9mtBhDlF1aVRZKRUEhUHSLC8lGIoa6-NSwVQKxGiwBr3hd6K5eCmnILDghtmfGGECSmkUPoDQx8Aumul3RKLnusieSvRTTTKUcYLCl3uNH9wOUZuVo9QM2TFlNw3ckaTudWniW+UlK-lOChwAcXf16g2g93pgPmhF4PJQoA1LdA0YadililRJWUvUXlDMALCrQdinWqshx5OpFLFsLiKM598Sc2JUUp8odLGKsFWxbmV9AOKHAASyKLTKQ7WQNMJaDQOdyDgBypl1xKlG1UqpokaqbiOqmnIUjp5C0F+MCHUp1JhoEZSgbIEDB+TizwhgdbRhaRYXxwwQ0tSrqsJvnJFaZ9oMfAUG2AxRfeRAqlFAza6yDxxIQWAZJieqEgWFIxcaFfh+A+oJsB1QQY0j+zfptA6tGxq1zhLtc366K+YPTj+z8JoYN48GElGgJvZBqjgElZrUsGwNWaddFhQzj1QU1zAuzLlFDHPJOKtqg8wEOyrhrQNQ6utThivV5UsRuhZFB0UKWkUp95+mRTDCCQ2lHKq6kDb5cws-lpUKS5+VeUUEoh1T5ocRWIsWA8x7xn5iTA1aSoy4IqUVz1FhdD3MAmhVY94OkSCkvB6oNA2c1ph3JhX6qmGcK8lW6spXGqyoawewnCBSgPDoC6qp5bVhVgqM+ye8l+Zp2dUcr4ay3eBvmvoK8qSIksbhOhxnDAr8E9hP1BQycxFhNGiDF1eQMKxo9LGy9bRmWpPagQgYPaEcPZA-hg0Toh5fuBpx8Z+NYAATKuV2DSAGDxwGdQocCr4QIz+UDQRGF2A6bnZ9cvwyIb0yKwzMB5pCgcNDCDTqBhlWwX5hJCPAqR7uBS8Na-L9a4tRMdzaBWc31kTSlURQRSJh1YyFAjSGmKJg8PdycoYQuq-eU+roT+sYWzaKuT+vtB-rSctoY8igLaRd1VApsD5ZYoRrQbcWpLODXGrfgIboJg1ZDVwswl8gbApoLICxGHAWB52UqWDS2mlbwaW+0Eo8ICB7StZLovyMKPwQLqH4c1leDlv6wI0sajWbG39Qai41NRCgrrPMIOnu4NwKFEG3NUC1xY5tg2HyY9ZIG4RKQR1UkWWH+LBiKLUBc2GJXqqg36NNNgbYNmil01oJA8XzRMkZviidwew2i27pht+aMbCkvbDthEQjBSbENMm-6vby4UYqB+vuIIafD83TJ12y7XpURpQSM4YxkWWJvYnqZ1QcBvqQCiVSYj087OuHLmGnPJQMgFIhE34FUC+yOZy2X2f9BnhLrYbplmnagUauIUmrFNCbM7sOku5bBQYeqBMJUBsr2JTBIAyYDfUK54B0V6QzqFZkBQpBgVkMk9kh3cz8bMg426Bu1xfCdd+gnqz2oWA1lbM5RUPA+kh1VhlgjSuYNTYk3a3QMi1-gV7j43RXlsMBaUAENUChi-AbutEMsLsoU6OqXEz2slbkwoEcMhGqgsAOiqmm4ZA4KYTImWOjkMsEdLOQeUBKK3MdYS8Gzeb7NyA4qlAE0KGDYDQSrDBUQlb1ZjsD4a9ueOvNxOzxtQDye+eO2WlFjsRYCNA8-SOH2WyoGkqdJfYsuXxlAdav127WzL33LQiV8+HOydkDA1zATgpNndrbQOkEi7XJjZCRF4OSmnJChWAtKAxJZxHAVhnlQpW1re4q6LBE21njfx5hKDFVzUWjeqjqjjgsBoqsfM3EG48Sld5uuwcAO21urwByK+AbytvBOa3GCbJyFgIkrghoUpwLQPIHG0W7D+Mq8HR2uV2+7YFKWvEiOAd1ngIxDojQNIrjixsDJuQOwJygsWtaQdkg9QZbv92gDum8gxQViXRXdhi6yU6CNymBAzhqO+oQlBElED2zt+L3dPbXuT02KrBD1UfYAJb1Z6Zw3YSLJs1YiDV+BtQXYG3FibGyTYVaSIZVRiFpy8EJaN7ICG3hOELoBKThMpGZGFCYC5YRbAcOGGaiJ4ac8KEELsJ2ATgwg+qZIGTANaIQj3L4UML3X-C6djYPxVTwobX5KKwpMcKJWwRMRBVisNqfyIwAH67AdoJCMy2ppmBvsqsedfeHeG50pCbUn0R6MzhoHy2wDdZfQ3hHWqFgbUN3HloegnUtpLYtA-2CTAiVjg4iZQIcA3kEJ2ynKCau1j3H1jxxM49g9Zlrl4HHurZNcV-SORQSQG3qR1VtK-FoHEonKPuLUFWjmLvcDLfih1BHZ5o2p1E5LZ1oOjmB08Ze2hXOsaSdCXQFQVLFqlITgw2pdkjQ-8qW31zxCqsCOOxuOjjZzkt2raSVLQMfxoQ5oF3nHE6GpYxFCnCwGvxa3Kj8pt1DqSNL2ljS0D1iPcEXJ0O4ozA+9bpA3LHaKTDgqM-6Z9AJn7R1dJkdA+Tn5nNZ-25PNZsvrnIbJl9LMSNC4CAA */ + /** @xstate-layout N4IgpgJg5mDOIC5QDMwEMAuBXATmAKnmAHQCWEANmAMRQD2+dA0gMYUDKduLYA2gAwBdRKAAOdWKQyk6AOxEgAHogCMAFhXF+27QDYArAGZ9AJhWGAHIYA0IAJ6q1ATkPELFkxf1qL-NQHYLNX0AXxDbVExcAiIyShpYMCoWDAB5UTAcTBlZAWEkEHFJaTkFZQQVJ00dPSNTcytbBwRnXWJ-fR0Op3cXJzUwiPRsPEIwEnIqajBZDEyAUQgpADEKOgB3PIUiqRyy1V1qmoNjM0sbe1V1TSd-XV1+XUM-EyeB8JBIkZjxuKmIJJgObpTLZORbAo7EryArlFQWI46E71c5NRD+fxqdqdfivDQmfx+QyDT7DaJjCbxWgMOjzHA4Og4CFiCS7UqwxBmRG1U4NC7NFSBYgmHH8O5VfgeR4kr7k2L0UiyKCMVgcLg4HjERLJaRK6jasApSDMwqs6H7Cr8IzEfQqby6NS4-ROK1ONEVfT6Npefr8FTmZyGXQysmjeV0RXK5hsTjcEgQOQ0E1QvYciqGbmPOpnCy6d0qe5OYjGFyBEVVExOENRMO-BVKlUx9WaugZWSRgDCdABAAU0LIaCxu2A+wOQQOIMmzanQOVDiZiA7XfwXK8MxZ857vc7Hf7DIHgx9ZbWSAaUpGtYDz3qz3NJ0JttP2bPELoLEWESK1CYTK6TBn3U9It-FeT1DCcSs-FMatvgpS8dQvBMB2oKdihnJRVH8TNkRzPNLgQJwnH0YhBScAxBQsEC7mJI9Qx+EgZjmHBI0WFY1nWeDDV1KB9SvO9ULZGEXwQIwF0MTwVDxPEN3wyTnkXL1nl0SsnmMUJaJrejiEYzIWKWDBVg2YgkKTB9ISfISMI9bDswaPCBUMDpF3En13CscSqw02DYh05ilVYgz2OIUQ8FENA8ACrsAFsov7CBqBMshZAANzoABrEhjy03y9LYoyQrAMKIv06LYtkCAEEVVKWDBXIhAE800wg1wvRFZ1XjI55-HzTwLBIlzCStbxKxooZNLgnL-P0wyOIKoqwEiugYri6Z6UZYKKEwZBGSi4gsom2ZdKmvLZtC8KFpKpayoqqq6Bq6E8ga9Dymam1lKAjqnjFfNKmI0j-EMSwfwxMUYLlX4ASobiQSyaFOOvHjb2NMyWTQ58rM9MSJO0NQHXcNR+UQLx+GFfgMw0XHcatFQwZPYzAWhjJYZyYzExQlHTTRyzyl-GzeVRfDHL65xCNXf0TGCfdaa0yGgUjGHavpqHI3YPicgSxMktSjK9rouDZcZ0E4YNlW1bkSqUru2rHo5lN0Ze79SeeXxnluKp9HdF1-EXfwyMOIiCZAw8xu8iGGflpnFZNpVVYQuRVoZHANq2nbdfG2Jo6gBXjfDmOzdkC3qut+rbYsi1+gXX9nbJldfbtd0ESxIP9AxB1nCtd4Q-Bkh6yjOlE+IVsZk7YdR0HUf+zAcdkfyVHBItZ02lFN9yy6kx3TMPrRXMAlAc6dSu7p3vGH79aTPZ2fOfntMuS0Y5bIF5pAczQHAn3Aswg+WRh3gAp9qIR8XMLQAFp7KIGARLaWcFJhgEAdfYS358xkXaFRDMmJ-TKXuFA8MkZGxqjjHAxqwl9yuAeC4ZS-QAZmAdPmNQuNiw7kopUbQv1sF1gjA2aM+CNSnjVkqQhz0iZWmLJJCmLdTCNFkkYVwPoCaVB6PoBEwdSTp3YbgrhsYeGswHAI+2VxfZaGUnvDEPRvpSMBm4HcGZCJeCUWwnuHCoyqk0S2NsI9eyT10dzRA4FNBkKDJWAI4kCxqE3BY2R1iFF2K8t3eG3EvEWnAqQlclh3ySiqADbq+E6FFh-AYZSK4XAaH8PYuJF5byRgSWmOhfiUm9HSYKRygEgztFAooqwKgVzQRiXTCpSptGwPMkAtMCJiIlg0OBZ0HhEH4SMG0Zu7SMxdJMKUyaUAAozSqcQp4i46lpPfI0rJAoyZYl0L7B0BZeYWFWYdPy6zppBT6VALZVkNC1JcPUg5mSeoZhIopR4Kk94HxUaHBitzcqBSMiZF5cICze03i7PwZFtDr1kj+LEdoKEQTuD4EpPTsrguOpC06hVzqLWWuVGFr4W5uExDY+EZMEQqB6mKBSykvD-jOZ5Q+Mtc5Z0jkQq+gryjnF2eQwJVCQnugMFiPJnpCTqCsN+Upmds4syeVSlovz-EUKCdQ0J+FibtDJv6T0NcVydxBbE1VAqWbQqGfAqy-ogjEBFkwlcdpBQGuaEEVwhIMyCnMISV4NN8X6z5WquQSs5Z5zjpZO23iEBnO9pRZwIFN6BG8A3AkTtJJ+CtK6S1-81GcNPjgTV4lva40ou4YwkohretUJKO+OggjsucKGnlcFj60jWknIe7YlRdg8Toh1wqfFOWrYEKwnRfCekbRUIiNoai2n6A8EU1yw04NLX2gZmrAhFkDQcl0v0ghIOIqKama6nSbrCEAA */ id: 'featureTree', description: 'Workflows for interacting with the feature tree pane', context: ({ input }) => input, @@ -160,6 +191,11 @@ export const featureTreeMachine = setup({ actions: ['saveTargetSourceRange', 'saveCurrentOperation'], }, + enterAppearanceFlow: { + target: 'enteringAppearanceFlow', + actions: ['saveTargetSourceRange', 'saveCurrentOperation'], + }, + deleteOperation: { target: 'deletingOperation', actions: ['saveTargetSourceRange'], @@ -271,6 +307,60 @@ export const featureTreeMachine = setup({ exit: ['clearContext'], }, + enteringAppearanceFlow: { + states: { + selecting: { + on: { + selected: { + target: 'prepareAppearanceCommand', + reenter: true, + }, + }, + }, + + done: { + always: '#featureTree.idle', + }, + + prepareAppearanceCommand: { + invoke: { + src: 'prepareAppearanceCommand', + input: ({ context }) => { + const artifact = context.targetSourceRange + ? getArtifactFromRange( + context.targetSourceRange, + engineCommandManager.artifactGraph + ) ?? undefined + : undefined + return { + // currentOperation is guaranteed to be defined here + operation: context.currentOperation!, + artifact, + commandBarSend: commandBarActor.send, + } + }, + onDone: { + target: 'done', + reenter: true, + }, + onError: { + target: 'done', + reenter: true, + actions: ({ event }) => { + if ('error' in event && err(event.error)) { + toast.error(event.error.message) + } + }, + }, + }, + }, + }, + + initial: 'selecting', + entry: 'sendSelectionEvent', + exit: ['clearContext'], + }, + deletingOperation: { states: { selecting: { diff --git a/src/machines/modelingMachine.ts b/src/machines/modelingMachine.ts index bb33e4700..7e5dd0ead 100644 --- a/src/machines/modelingMachine.ts +++ b/src/machines/modelingMachine.ts @@ -88,6 +88,7 @@ import { import { getPathsFromPlaneArtifact } from 'lang/std/artifactGraph' import { createProfileStartHandle } from 'clientSideScene/segments' import { DRAFT_POINT } from 'clientSideScene/sceneInfra' +import { setAppearance } from 'lang/modifyAst/setAppearance' export const MODELING_PERSIST_KEY = 'MODELING_PERSIST_KEY' @@ -314,6 +315,7 @@ export type ModelingMachineEvent = type: 'Delete selection' data: ModelingCommandSchema['Delete selection'] } + | { type: 'Appearance'; data: ModelingCommandSchema['Appearance'] } | { type: 'Add rectangle origin' data: [x: number, y: number] @@ -2172,6 +2174,47 @@ export const modelingMachine = setup({ }) } ), + appearanceAstMod: fromPromise( + async ({ + input, + }: { + input: ModelingCommandSchema['Appearance'] | undefined + }) => { + if (!input) return new Error('No input provided') + // Extract inputs + const ast = kclManager.ast + const { color, nodeToEdit } = input + if (!(nodeToEdit && typeof nodeToEdit[1][0] === 'number')) { + return new Error('Appearance is only an edit flow') + } + + const result = setAppearance({ + ast, + nodeToEdit, + color, + }) + + if (err(result)) { + return err(result) + } + + const updateAstResult = await kclManager.updateAst( + result.modifiedAst, + true, + { + focusPath: [result.pathToNode], + } + ) + + await codeManager.updateEditorWithAstAndWriteToFile( + updateAstResult.newAst + ) + + if (updateAstResult?.selections) { + editorManager.selectRange(updateAstResult?.selections) + } + } + ), }, // end actors }).createMachine({ @@ -2267,6 +2310,11 @@ export const modelingMachine = setup({ }, 'Prompt-to-edit': 'Applying Prompt-to-edit', + + Appearance: { + target: 'Applying appearance', + reenter: true, + }, }, entry: 'reset client scene mouse handlers', @@ -3389,6 +3437,19 @@ export const modelingMachine = setup({ }, }, }, + + 'Applying appearance': { + invoke: { + src: 'appearanceAstMod', + id: 'appearanceAstMod', + input: ({ event }) => { + if (event.type !== 'Appearance') return undefined + return event.data + }, + onDone: ['idle'], + onError: ['idle'], + }, + }, }, initial: 'idle',