From 450e8fcf8a8b2c6882887d132a4a122b8c709d37 Mon Sep 17 00:00:00 2001 From: Mehak Jain <145124929+Mehak261124@users.noreply.github.com> Date: Tue, 23 Jul 2024 14:14:36 +0530 Subject: [PATCH] [GSoC 2024] Use toolkit tree view for all tree view: table of content, debugger variables and running tabs (#16488) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Use Jupyter toolkit treeview Co-authored-by: Mehak261124 <145124929+Mehak261124@users.noreply.github.com> * Fix snapshots * Fix buttons styling * Fix integration tests * Reduce left margin for flat list * Fix integration tests * Ask explicitly the type of sessions view * Update snapshots * Bump toolkit to 0.16.5 Fix styling of first-level tree items * Bump toolkit to 0.16.6 * Reduce spacing between icon and label * Avoid horizontal position change when switching from flat to hierarchical tree view * Update snapshots * Improve positioning for flat tree * Fix typescript * Update snapshots * Make the workspace panel integration test more robust * Mock the kernels API for robuster running panel integration tests * Fix kernels mock * Update snapshots --------- Co-authored-by: Frédéric Collonval --- dev_mode/package.json | 4 +- examples/cell/package.json | 2 +- examples/console/package.json | 2 +- examples/filebrowser/package.json | 2 +- examples/notebook/package.json | 2 +- examples/terminal/package.json | 2 +- galata/README.md | 30 ++ galata/src/fixtures.ts | 34 +- galata/src/galata.ts | 66 ++- galata/src/helpers/debuggerpanel.ts | 11 +- ...debugger-variables-documentation-linux.png | Bin 3121 -> 4443 bytes .../running-layout-documentation-linux.png | Bin 15182 -> 20995 bytes .../running-modal-documentation-linux.png | Bin 13634 -> 18781 bytes .../interface-tabs-documentation-linux.png | Bin 8464 -> 11539 bytes galata/test/documentation/workspaces.test.ts | 18 +- ...workspaces-sidebar-documentation-linux.png | Bin 26192 -> 34444 bytes galata/test/galata/fixture.spec.ts | 35 ++ galata/test/jupyterlab/debugger.test.ts | 124 ++--- ...sion-global-variables-jupyterlab-linux.png | Bin 6597 -> 4318 bytes ...sion-script-variables-jupyterlab-linux.png | Bin 4129 -> 2735 bytes ...bug-session-variables-jupyterlab-linux.png | Bin 4129 -> 2735 bytes ...r-jp-running-sessions-jupyterlab-linux.png | Bin 12971 -> 19219 bytes galata/test/jupyterlab/toc-running.test.ts | 15 +- ...nning-indicator-error-jupyterlab-linux.png | Bin 6655 -> 6572 bytes ...g-indicator-top-level-jupyterlab-linux.png | Bin 5689 -> 5264 bytes ...oc-running-indicators-jupyterlab-linux.png | Bin 7227 -> 7405 bytes galata/test/jupyterlab/toc.test.ts | 33 +- ...ebook-output-headings-jupyterlab-linux.png | Bin 21883 -> 20147 bytes .../toc-panel-jupyterlab-linux.png | Bin 19241 -> 18235 bytes .../toggle-numbered-list-jupyterlab-linux.png | Bin 17561 -> 17044 bytes packages/debugger/package.json | 2 +- .../debugger/src/panels/variables/index.ts | 4 +- .../debugger/src/panels/variables/tree.tsx | 422 +++++++----------- packages/debugger/style/variables.css | 81 +--- packages/lsp-extension/src/index.ts | 1 + packages/running-extension/src/kernels.tsx | 10 +- packages/running-extension/src/opentabs.ts | 1 + packages/running-extension/src/recents.ts | 1 + packages/running-extension/tsconfig.json | 3 +- packages/running/package.json | 1 + packages/running/src/index.tsx | 232 ++++++---- packages/running/style/base.css | 81 +--- packages/terminal-extension/src/index.ts | 1 + packages/toc/package.json | 1 + packages/toc/src/tocitem.tsx | 70 +-- packages/toc/src/toctree.tsx | 7 +- packages/toc/style/base.css | 55 +-- packages/ui-components/package.json | 4 +- .../ui-components/src/components/toolbar.tsx | 1 - packages/ui-components/src/utils.ts | 26 ++ packages/ui-components/style/base.css | 6 +- packages/ui-components/style/toolkit.css | 32 ++ packages/workspaces-extension/src/sidebar.ts | 1 + yarn.lock | 36 +- 54 files changed, 725 insertions(+), 734 deletions(-) create mode 100644 packages/ui-components/style/toolkit.css diff --git a/dev_mode/package.json b/dev_mode/package.json index ae19f83edb4d..b5b3660526e6 100644 --- a/dev_mode/package.json +++ b/dev_mode/package.json @@ -20,8 +20,8 @@ "@codemirror/language": "^6.0.0", "@codemirror/state": "^6.2.0", "@codemirror/view": "^6.9.6", - "@jupyter/react-components": "^0.16.3", - "@jupyter/web-components": "^0.16.3", + "@jupyter/react-components": "^0.16.6", + "@jupyter/web-components": "^0.16.6", "@jupyter/ydoc": "^2.0.1", "@jupyterlab/application": "~4.3.0-alpha.2", "@jupyterlab/application-extension": "~4.3.0-alpha.2", diff --git a/examples/cell/package.json b/examples/cell/package.json index 03e590fe2389..30a0ad81cdaf 100644 --- a/examples/cell/package.json +++ b/examples/cell/package.json @@ -7,7 +7,7 @@ "clean": "rimraf build" }, "dependencies": { - "@jupyter/web-components": "^0.16.3", + "@jupyter/web-components": "^0.16.6", "@jupyter/ydoc": "^2.0.1", "@jupyterlab/application": "^4.3.0-alpha.2", "@jupyterlab/apputils": "^4.4.0-alpha.2", diff --git a/examples/console/package.json b/examples/console/package.json index 9d492f92967e..a597cbb86da1 100644 --- a/examples/console/package.json +++ b/examples/console/package.json @@ -7,7 +7,7 @@ "clean": "rimraf build" }, "dependencies": { - "@jupyter/web-components": "^0.16.3", + "@jupyter/web-components": "^0.16.6", "@jupyter/ydoc": "^2.0.1", "@jupyterlab/application": "^4.3.0-alpha.2", "@jupyterlab/codemirror": "^4.3.0-alpha.2", diff --git a/examples/filebrowser/package.json b/examples/filebrowser/package.json index 59aeddcf48fc..a7a02fc17797 100644 --- a/examples/filebrowser/package.json +++ b/examples/filebrowser/package.json @@ -7,7 +7,7 @@ "clean": "rimraf build" }, "dependencies": { - "@jupyter/web-components": "^0.16.3", + "@jupyter/web-components": "^0.16.6", "@jupyterlab/application": "^4.3.0-alpha.2", "@jupyterlab/apputils": "^4.4.0-alpha.2", "@jupyterlab/codemirror": "^4.3.0-alpha.2", diff --git a/examples/notebook/package.json b/examples/notebook/package.json index 05ae348d6c05..ff141df9ddab 100644 --- a/examples/notebook/package.json +++ b/examples/notebook/package.json @@ -7,7 +7,7 @@ "clean": "rimraf build" }, "dependencies": { - "@jupyter/web-components": "^0.16.3", + "@jupyter/web-components": "^0.16.6", "@jupyter/ydoc": "^2.0.1", "@jupyterlab/application": "^4.3.0-alpha.2", "@jupyterlab/apputils": "^4.4.0-alpha.2", diff --git a/examples/terminal/package.json b/examples/terminal/package.json index 213ed7401331..3b6e02bee599 100644 --- a/examples/terminal/package.json +++ b/examples/terminal/package.json @@ -7,7 +7,7 @@ "clean": "rimraf build" }, "dependencies": { - "@jupyter/web-components": "^0.16.3", + "@jupyter/web-components": "^0.16.6", "@jupyterlab/application": "^4.3.0-alpha.2", "@jupyterlab/coreutils": "^6.3.0-alpha.2", "@jupyterlab/services": "^7.3.0-alpha.2", diff --git a/galata/README.md b/galata/README.md index 9a47c6935e50..ce4f3f147763 100644 --- a/galata/README.md +++ b/galata/README.md @@ -454,6 +454,36 @@ Possible values are: By default the user is stored in-memory. +### kernels + +- type: \ | null> + +Kernels created during the test. +Possible values are: + +- null: The kernels API won't be mocked +- Map\: The kernels created during a test. + By default the kernels created during a test will be tracked and disposed at the end. + +Example: + +```ts +test('should return the active kernels', async ({ page, kernels }) => { + await page.notebook.createNew(); + + // Wait for the poll to tick + await page.waitForResponse( + async response => + response.url().includes('api/kernels') && + response.request().method() === 'GET' && + ((await response.json()) as any[]).length === 1 + ); + + expect(kernels.size).toEqual(1); + // You can introspect the kernels.values()[0] if needed +}); +``` + ### sessions - type: \ | null> diff --git a/galata/src/fixtures.ts b/galata/src/fixtures.ts index 088ec0673797..99e820648419 100644 --- a/galata/src/fixtures.ts +++ b/galata/src/fixtures.ts @@ -2,7 +2,7 @@ // Copyright (c) Jupyter Development Team. // Distributed under the terms of the Modified BSD License. -import type { Session, TerminalAPI, User } from '@jupyterlab/services'; +import type { Kernel, Session, TerminalAPI, User } from '@jupyterlab/services'; import { test as base, Page, @@ -56,6 +56,16 @@ export type GalataOptions = { * Default: true */ autoGoto: boolean; + /** + * Kernels created during the test. + * + * Possible values are: + * - null: The kernels API won't be mocked + * - Map: The kernels created during a test. + * + * By default the kernels created during a test will be tracked and disposed at the end. + */ + kernels: Map | null; /** * Mock JupyterLab config in-memory or not. * @@ -180,6 +190,24 @@ export const test: TestType< * Note: Setting it to false allows to register new route mock-ups for example. */ autoGoto: [true, { option: true }], + /** + * Kernels created during the test. + * + * Possible values are: + * - null: The kernels API won't be mocked + * - Map: The kernels created during a test. + * + * By default the kernels created during a test will be tracked and disposed at the end. + */ + kernels: async ({ request }, use) => { + const kernels = new Map(); + + await use(kernels); + + if (kernels.size > 0) { + await galata.Mock.clearRunners(request, [...kernels.keys()], 'kernels'); + } + }, /** * Mock JupyterLab config in-memory or not. * @@ -353,6 +381,7 @@ export const test: TestType< appPath, autoGoto, baseURL, + kernels, mockConfig, mockSettings, mockState, @@ -378,7 +407,8 @@ export const test: TestType< sessions, terminals, tmpPath, - waitForApplication + waitForApplication, + kernels ) ); } diff --git a/galata/src/galata.ts b/galata/src/galata.ts index fbd640c5e9a4..2ade83ecf943 100644 --- a/galata/src/galata.ts +++ b/galata/src/galata.ts @@ -4,6 +4,7 @@ import type * as nbformat from '@jupyterlab/nbformat'; import type { + Kernel, Session, TerminalAPI, User, @@ -150,6 +151,12 @@ export namespace galata { * Default true */ mockUser?: boolean | Partial; + /** + * Whether to store kernels in memory or not. + * + * Default true + */ + mockKernels?: boolean; /** * Whether to store sessions in memory or not. * @@ -216,7 +223,8 @@ export namespace galata { sessions: Map | null, terminals: Map | null, tmpPath: string, - waitForApplication: (page: Page, helpers: IJupyterLabPage) => Promise + waitForApplication: (page: Page, helpers: IJupyterLabPage) => Promise, + kernels?: Map | null ): Promise { // Hook the helpers const jlabWithPage = addHelpersToPage( @@ -273,9 +281,12 @@ export namespace galata { await Mock.mockUser(page, user); } - // Add sessions and terminals trackers + // Add kernels, sessions and terminals trackers + if (kernels) { + await Mock.mockRunners(page, kernels, 'kernels'); + } if (sessions) { - await Mock.mockRunners(page, sessions, 'sessions'); + await Mock.mockRunners(page, sessions, 'sessions', kernels ?? undefined); } if (terminals) { await Mock.mockRunners(page, terminals, 'terminals'); @@ -310,6 +321,7 @@ export namespace galata { */ export async function newPage(options: INewPageOption): Promise<{ page: IJupyterLabPageFixture; + kernels: Map | null; sessions: Map | null; terminals: Map | null; }> { @@ -320,6 +332,7 @@ export namespace galata { browser, waitForApplication, mockConfig, + mockKernels, mockSessions, mockSettings, mockState, @@ -330,6 +343,7 @@ export namespace galata { appPath: '/lab', autoGoto: true, mockConfig: true, + mockKernels: true, mockSessions: true, mockSettings: galata.DEFAULT_SETTINGS, mockState: true, @@ -341,6 +355,7 @@ export namespace galata { const context = await browser.newContext(); const page = await context.newPage(); + const kernels = mockKernels ? new Map() : null; const sessions = mockSessions ? new Map() : null; const terminals = mockTerminals ? new Map() @@ -359,8 +374,10 @@ export namespace galata { sessions, terminals, tmpPath, - waitForApplication + waitForApplication, + kernels ), + kernels, sessions, terminals }; @@ -407,6 +424,15 @@ export namespace galata { */ export const extensions = /.*\/lab\/api\/extensions.*/; + /** + * Kernels API + * + * The kernel id can be found in the named group `id`. + * + * The id will be prefixed by '/'. + */ + export const kernels = /.*\/api\/kernels(?!pecs)(?\/[@:-\w]+)?/; + /** * Sessions API * @@ -703,7 +729,7 @@ export namespace galata { export async function clearRunners( request: APIRequestContext, runners: string[], - type: 'sessions' | 'terminals' + type: 'kernels' | 'sessions' | 'terminals' ): Promise { const responses = await Promise.all( [...new Set(runners)].map(id => @@ -780,6 +806,12 @@ export namespace galata { }); } + const routes = { + kernels: Routes.kernels, + sessions: Routes.sessions, + terminals: Routes.terminals + }; + /** * Mock the runners API to display only those created during a test * @@ -790,10 +822,10 @@ export namespace galata { export function mockRunners( page: Page, runners: Map, - type: 'sessions' | 'terminals' + type: 'kernels' | 'sessions' | 'terminals', + kernels?: Map ): Promise { - const routeRegex = - type === 'sessions' ? Routes.sessions : Routes.terminals; + const routeRegex = routes[type]; // Listen for closing connection (may happen when request are still being processed) let isClosed = false; const ctxt = page.context(); @@ -836,7 +868,7 @@ export namespace galata { } const data = await response.json(); // Update stored runners - runners.set(type === 'sessions' ? data.id : data.name, data); + runners.set(type === 'terminals' ? data.name : data.id, data); if (!page.isClosed() && !isClosed) { return route.fulfill({ @@ -870,7 +902,7 @@ export namespace galata { const updated = new Set(); data.forEach(item => { const itemID: string = - type === 'sessions' ? item.id : item.name; + type === 'terminals' ? item.name : item.id; if (runners.has(itemID)) { updated.add(itemID); runners.set(itemID, item); @@ -909,7 +941,11 @@ export namespace galata { } const data = await response.json(); // Update stored runners - runners.set(type === 'sessions' ? data.id : data.name, data); + runners.set(type === 'terminals' ? data.name : data.id, data); + // Update kernels + if (kernels && type === 'sessions' && data.kernel.id) { + kernels.set(data.kernel.id, data.kernel); + } if (!page.isClosed() && !isClosed) { return route.fulfill({ @@ -933,11 +969,15 @@ export namespace galata { break; } const data = await response.json(); - const id = type === 'sessions' ? data.id : data.name; + const id = type === 'terminals' ? data.name : data.id; runners.set(id, data); + // Update kernels + if (kernels && type === 'sessions' && data.kernel.id) { + kernels.set(data.kernel.id, data.kernel); + } if (!page.isClosed() && !isClosed) { return route.fulfill({ - status: type === 'sessions' ? 201 : 200, + status: type === 'terminals' ? 200 : 201, body: JSON.stringify(data), contentType: 'application/json', headers: response.headers as any diff --git a/galata/src/helpers/debuggerpanel.ts b/galata/src/helpers/debuggerpanel.ts index 108133617873..46eac57c2771 100644 --- a/galata/src/helpers/debuggerpanel.ts +++ b/galata/src/helpers/debuggerpanel.ts @@ -100,7 +100,10 @@ export class DebuggerHelper { * Waits for variables to be populated in the variables panel */ async waitForVariables(): Promise { - await this.page.locator('.jp-DebuggerVariables-body ul').waitFor(); + await this.page + .locator('.jp-DebuggerVariables-body') + .getByRole('tree') + .waitFor(); } /** @@ -108,11 +111,9 @@ export class DebuggerHelper { */ async renderVariable(name: string): Promise { await this.page - .locator(`.jp-DebuggerVariables :text("${name}")`) + .getByRole('treeitem', { name: `${name}:` }) .click({ button: 'right' }); - await this.page - .locator('.lm-Menu-itemLabel:text("Render Variable")') - .click(); + await this.page.getByRole('menuitem', { name: 'Render Variable' }).click(); await this.page.locator('.jp-VariableRendererPanel-renderer').waitFor(); } diff --git a/galata/test/documentation/debugger.test.ts-snapshots/debugger-variables-documentation-linux.png b/galata/test/documentation/debugger.test.ts-snapshots/debugger-variables-documentation-linux.png index 587bde0044d344bb4d5c8a5ff5f991352424e725..ec79bc9162229f5d6f0a7c48a3d0794ea7c4e33c 100644 GIT binary patch literal 4443 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 literal 3121 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 literal 15182 zcmcJWcQ{;a*Y>3#5#1m}v=F03bP^>Py-uQw-g{4UqJ+`gB+(gdqLYXaB|4)sLiFB3 zh-gv2%l*7hec$KL@5nKSo!Q&AXZBueo$I&G3!$MVPeedVfP;fWq^JOUii30I4tT}i zxC-7O6M5zceq3>XDld&w)=#&NgY)=?B1}rtYho({UsqEvZM7*SBO}HC#Y-z|@OlCM z=?`@Xtqyub<*2?hINN(RNjDjErFxRfF73%jqIVSNh)5{Z!lEhAxx9k2-ugdnm5u`I8}_5L&dm7cQ*Dm45H><1ZBzgD`lt z{zJES$DNFkBJeB{O@B@(3okxhX9=Vp;7rmxT6j*7r7U%QxFUT0=z z##{ozQR6si1(!jgC)i`;+)s~w-K4mG!yrq<)$GX=9NkARe@Ps-7-;auL#jf!~K!UZ{1&__kmu*4_g1s!XmG@_(yLFzvgwv`vZMNr6CZExSXf(ga-N-@hO)hfp`@jyH3I+aS{{jm{b~*VCsZB&zgJW(^W);; z(zi6J;M5PEKUqd{>S)Mq)>!q?f}^CFhC^};M9`5v!RTV0a@5N4{*QyhCnz*6d!9;# zr&m$YJp$svt88-qnx$G!PELw5i!%+rCdCKR_8? zt@+UTwy4UP`DtpajQ}knp1AC&U2~V|#;HF*w8c9d5?g_p|DPq`0;K#R8cQ>~p--Vo3>?1K#!PChqN#lo65e&Bnf zi*4GAgpQBsI2q06nFmGfflhwE>%Wl;zSz`#=P-~dF6=aQLrCMrix*V(cL_p_DomQ+ za2qt9AKND%ZhpTvHUOT25WVyBb3XVW2Fa<+On|hB!yCs9YM(dT>3PE~lOGZy^LwT5 z)~#DeSkBq2YxonN9HZQ9Y@i#i5R7?8^!GZ?AH(^|UtVk}DPV%0siA!OE=D%DtrQ6P zZQY_p73(G^Kdw$oT!nX(h>W5npOqf_ZaGVisiEk_yl_TB$yS$_6{#Hr0xr%D(V`w} z@eYG;d5ncpvRs3A^AwY~HY{(VQiU8h*4Ex7CYm9kOd`CScHSi z-1?!0s{>g&jS&U~(g=7Vu*Q&q_Kf7EJ{JMUAb^=w&6#LG+LD5p+V%!FCG~7t5Z_mE$)XMY=B%3c>^)7NpUi?I zT%-I#c&okrekpCttpiVP!c?cym)!9qhKD%CMXVQE44$ahWVqq(J9ARY1I1kRkt*1u zUyF{Uti>RFZEbDaa~nbW!QeBCoh-jK2C0HgXp2SZhz=*~-Mff2;_nGwEs-Ka2V0Xo zhIMn5(M{EwZ(RzK|* z)2@#WHw{bf3R2bwqLa_(nX0V~y(yaW?3QQs*2RWN7*lrhxeON{GUv%y70MQ=d33phzF^wV!tGGHj~t2|6$Am%*$ zuFq)fIW4O!G?)FyOpSex9Pv70=x9WYOA68XZSon_5bWW#3 ztSF&7yCy-N@(((_?WF{V(h(HboOb%IGx%x*Y~4Ibh!qeiTcU_wU0XG?_KPQGRsm<% z9%0W9o^7Rz%QG)6Ern_j*>+FWx^r6%C^IWj-T25z@Z^)-C`Jv1M?`Bu_Q`W|oJ?>a zOY*I{W}(_$kF|{r4tfiZ zP;fOjiuAJOd2mHvq0H_M9BVE5DpS+TF4$+fiMjF$A?*cOS27nNtz7x9I~<}(Akr2k zhx0J;sODsO+!@DwL?bd#r=q$x;y7~UIF=9(&2iWScRp6~b({_#vS5-{oh~KGnkxth z(S=`(H;KXgLn*m!Sh1_Qk~`el|I`BiPzV1b5+a!|t4a~fuZnd4&zdOY4(n;^OKx<9!&3Qesmo)jl~s zj=lT%g$ggo*8Kwm>PF_(PnWi~9962x{iJSOr28N(#?&J03?L!Bs4r%PR|e-27_lMLgy?-1u4fsKrSvU za99egaf^x7d!4P16jt_(jC{~0&mXn3ji^pXZ*Fd~KP!l?G;p!R#l=NRYyP6tm64Wi zLw%@mo_!z;2f2Q2wkdF=K-J)r145bN)}VA*S=k*Shxjzn$B!317V@CZ6Cd9@&o+V& z^t{64Reje=6gAI%)l_Vqr~RIgMOXaP)N?6K6BCoepVLjp8^vVz_ zw1lnqc5mxeR8&MY>XaMVe=DJRUNYda20ujv-%9*3Z+%%eS`ZX$ zb1qzEnxvi==l+%62b+4o;_tM*LgQPZjLOG^?XU_g;f!`C2U{PT27=Mx*6AHFm|mxn z&X@hr)zziMva!;arm&POqQ$Zi6%!*{fp0QrI#J_HB18Ql`BSb$ZNSz-+Rov&w8IL^cprN|(BLh-aN$;SdWtg4_!wKS%=Z2;wS(puhNLW~y9?WU^ zJ^>Y>8?1_&k`fn3fHtPPe*B_Ht9Z$3NBI+?YCboT0(bj5ijSW^iiCXe=8YTKXZ}<$ zJ->5vNjRnPqCtPI$=(i}%J)iI28`RVPBS-t$mTj8^N7qYzwd!V3OZLluI00=o|y1g zA-F=)lOB-w6Et#)zr5VWcx$?%7+D+?CSh}LGcxW%AS_lQ3Rr6x7Q_NZUbCIyhnZ(t zIh_P%;g7)3&``y$({vpXoybmH;At+SyhiBwKwn?!vqH7j*F?Yf_BO{Wa~)CHp`q88 zQn(F1h04e{Kk31PkKZ~S!pxbn|VDU9+>f=7Qp zrhr&RLFWlDQrHIHLk^MDg<0vU!2;E^BgtI5+wdFVq{p0FM|zi8{Fk1r>8)B#@h|N<82K{k9R57M~Y=hPXpM;(T&QhclpG|UucuWoIJl-EU=%4Pq0J72lc+b_%Eix{ybLH1! z=NFIlg|#)2fKx94-D*3n4_18>A8qfkIb+b}APoThdxzHy22zIa-Wt=z@#nniD~|I1 zO&8~n5zKI;dU8#TuuHII>l4l}C{hX6L`+=#76HLbz4tX77)dZ%G3owIlKVoP(KOd^ z`1tsq+~{9kTnxzt-PG52xY8WDo9*`H#Rl~1O$L;drklI zp-wtFC^WA5avIlJ|t>Gl?1wcYaMMe2RrXXVKuBd~b)0~*^-@l8{LG=k` zYK0iV#bpIS+mu146N5nL)qA<-AECiLytn>Vr&orATmNI%zyS4)?w)7*C5=`7CkL*J z9o-GxKaTWBS<4%l@5=&Z?!@8!_e=UQR(`R_aB&3WQC>lTc4XWm*M;lH>@#1l<|wfg zf$u~Sf;heoyDQ;$`xmmQDbUZa-i4i#g+o}FnkM$`TOA{#%psf5XTe+A>~PjnB3*L0 zPXj$sf0iT(s%?p7D-i~ovMwX-QhnSg2*p~(T(Q-BnQ=mGBSYY6rQ_r$Adl9+l}>_3 ztSA|s_zjN>aT(wGenD@LNZAntgYU|N_8ux_4u7<>OoxIiIGb_ z+?pH%(IXc_>$x^)y1y~HKoes_68;U8Kx^w&5NU6)C3$G|)AO;(N#DV2sRs`pfbLdR zQBkTPE>0c9#_|D=Q9aJ&Wfi<^i0}w+59TYs1*J0LAQ;NSQ{Ehc4=V9z@K^zE@DWa~ zH43YJgGApEcKR9&D!c|U0YR{3$ODHL8(2jn`ra0KB(@h1o^)R|*t~7!HPM}*H{JDZ zvLJJUWWq90ZcsyPo-_#>wP!&aD=R`ESEita94BCMavS@{px_GH4u>|yv%$4glDA8$ z$oEhGxa+$7IyuV}_w9&dFt)=MI#`83YcJ~S#T@Rluw;t`o}YrmmfG9%;iLW7Pasm< zPS9xR5Iq_DX^sjcC|P|7q*)L^BPxoTtYm_-yw0xf$|&N2vWPeWBBHxO4)2omKycg! zl2;3*WCu=uB;ZZmB3o&8pAK?L$X5q61#=NZt=kNFJ8IPA^z?Kopd;qa>iW7Oe<=}+ zsY-tHRs7;JGGtSI>HP9F8GXNVo(u`bjjk!TRd`BD3b-ZLxEE@#L@dX5M+ku!PeN1; zfp18s>^a#!5CBzi!STd*B?J5x+7Lj3kO_W5?C$Jj#}$RanxP<#xC705baaHwzv-&H zOrAf%H~uc^z)Aj-&&kdq?5^hr_p59sckao8v>Z?yFKEcud*) zO#uzj1XYYI{Hkd}cX`c1W30NOU?B^zyW&2O@a*uRT=|}l5g!Sp7|j%FJA~l7&$B=} zJFO>)gc~FMTYMd)Jbfv+Z&Z?^RD-y+Q}RXl;aiPidA}}dt;i@zNe9aezdX$%kROuQ z;)B6tnGe&uf{h;4w`itMrS@bnZ$5b_MN@ZMYi zXDG??$9{N1_GxYuob#d@fjZnv`X4d<$of7s(j7pQOL7B}z+cMyKR3U4>@IZ+vf6<1 zvcA6V7X_dSN65EwV`FkSXpqKhoQ?G!``Lwa*zbfj^WVDGF}e~M_jk|&+5d~ZDEHl0 z;vz2?vQb&duh*a#u+adC^6lF(Y64IrvztLtTS~R+O9kru0Xw_m9>2$$hUO(rFmnf~ zV4U#g&4icTeo#Y8`)!zfo2@s3w&M>9b0U8&+^oaL zx08f_HjQGv|0>DhSGIkK9*Fg11i*2-2M6?g7B?`@3RK|axQ6v!LmY6x7$JrTOUqL7 zum*IfC=gDb>%;lGO3Ta7V6af4C`s_N2{L1BLj9>TZ#(uX28Yp%pge?yw8`LMQv7-O zwACEu6N@b-I-?60sJKUe61@0mv3Jg8syDW8z3@OU!+^q4nM=;f;@K$GuV+-^()zPA zFO$5?)_21Jpp;13+#%g`bkAEJ&M#FHl1H$7-Ly{&6F`+aQE1ClfkJA!XV7=N1kd8- zq13kY@}Kp=zB~yT}E zX^phz4t^XThnT1wpV@EoNR@wOEd+6KeDCw+->fk(=s1@cFPT2zN-UA&q_>nYdxtr5 z#wk2k4Du)&T*jT$FB0E?;6>Lwf4-lw$7`*nd@c=Ich5vxz19eyvt!S%;RJ+)$*(FI z3EW&=;XkV*j<3rGqb2;0^YZf@zgOWd1K6Uch%IkAk8Bc2h(W7sSRm1hopDh@e?b=g z=E6G@JCcA0lfi(9(h8u*WvH$-ZB}FR&&#UdW`#!#?#20;dLLV_nkJy66k(vDkzm1) zUVOny7}B~l|BR)bJue8ZxvzC!-;VfzuXDj!GwNdM-Puz+02vx8Gk^9IBg%R>1tt7h z2{W%NyqYRC?(2PzO=}#Up0q#PlsFRzKUO$%u+_gU&;Zbk{Hw2WG~v2lH(7xar@MO> zh)O%DWV-!7$H)3haAteym0T8%M~~_PFU|qL&V2mRNfDkU5~YR8uBdpZF_EuK?HU=$ zl|#7ti~}w-;kP74KrH3!>e~EC8&JZ0qr>vL3T{65!=HzxLc&;ix>6V_I%R<6@M!mu zSe!?83f+5&t;&xnoZRsd@b#ZRd2QVQ2#X3{iP&2z3l{IMGf0by(Ermk6USnMCssrm z(yRK04ok7Vo>-TbmM8OZBb9o;TLTGEy4fo3y=&3nvyX$^q;i1yD>w&-gh&x%szfm` z!=?bk(7@%0V;62W@A;N6n+o^U{zwYTd2t}3i|@fB>!n}56rQ?jmbc)o`Rb)Xg(js0 zX6KZTYlgXjmu2P+oqE?*SjaJ3p#Z+m?cY!1Zzx*p9qV-Lu?0h6{@bhc(ku3{L^VQe zmD2k?k`Ua`4KBK}FE!2h}vXQxcng3Wi(gdppv7FnLirw?8gatM_<@)Q9Z5jUk&h#y!>ppwi!yu}qLhP$nW_Qf3n7&B3@- zu<542CJ}g5dPYXnsx9hbq)?rNhA&SxifZSL%_rZ(pOLroWAwr&Yn*j>P`e|y2Kt3q zW(95CRB^up0z02ec=N3Tsby~jocqMNLwK0tBVqaWy|F|%y!L{KuWWeb7;93nGxZ!$ zpxzA&QLS{Bhr`)g(Qx}Gw(xx zwswaVcBz{r>-_m42Ne0g){8|Q{tzl3LBYU9t2lxqt4JsgrJ%Ww1)?neo!;5*P)pb? zFtRcFnJKwa6AvZVGQ8}~0Q=Bo#k97D$f^IUl>N`r6?v=)g9G3cCk4sslKX{lKq^AA zXqA4w&$+CO{1gzakO&_@L6wx01lfu-tVKM;O);5ihSMRBxy1!dC$|e*7LJ??im2hB z@+rUJq5%aD2#d1kwNEn;b+j2PWT!`7x>sE`KCiWn{f_&T^@HMkQ}AL$Q;?a1i%aGF z&ni#TDL9k>q3}Y_z42ngom}k}OS=A-pSKz*PRP_Ul9KLe=N++JDC7NZT1wN#2CV{l@WqGRll#%xVD(Xmj`^W+ zu9m0O^5}?(T(*rSMz7CZu7;_%xhq;MudH-3DjZ%Nay>m^?F=%9Oy05@% z*3Y9gdBIL8(+neOzySx9Yi!-)VJE2kK)8`mAK4;WZ~)s$2cRz@;ffl_p8SA_2;UKL znd?qMR=~V!5yN)XluQJ{vS)iE>eWfmO0NiU{SQ{Eo{V-&pX{f#Gw{{=qpqa~?EaX0 zF&;faKZo_(i0vJdD#$|=yvC-l*goFg3(7~wCwlnr_jl=igOv|fRx`VD8O%l2UO z1x7I+7&pd@1GlDX`H!U(yw?VEKz~eJRs}kxuB#T81B6HZ#~yo|KY!AblLyzB0UBr% z!r2~k`|$qIF6fsi*wlam66^;({nN^+a$Goo0CFJ{idfLYY_b$#83)x+o6m1HuaBKvr4t-dj%(d?z|VSS~OujGTy=H_|OSS_f^Nt(^8sjClEnn%&= zhYShX49~(^P0*d!1`~1A@K;9Mj0=+4p zBpuqI#%V#1jRQ%b6T?phfy_;RZ7}~{W!a8sAzG%mkE)J=KGu=uQ9S#W@zRKSe(8=+ zPjX{#@*{blhD;}=PkM}=ZWT3wq?w#&w3H^?K!+N zm4_qJOiVkiyZ7l%P_j`PUn|XQ;Y@SfM>UKbJUk?6g8rka8`8-Rj-M_+R#a@L|L+fh z;okCzi4PRH6!k_lM~Yn&?IRf+BDbs~*G+wfyOTenG*P6OR=@U;B8%qY8(&~0Bs`|- z^kI*sPY#BangFd;N|O_(3ywMXwEfuT*{PBFq?b{N-?pc768V3rZ* zPqbe$DY;p_6DHVy`?Yf9{I>2c2n;QkNOO4A~HbMO;s@|uY}z)jNQAE z-SyS_vcpIeO#$@>l`zDCyuXsAl~qgE!s4PqwH@wnN@Pw>&H*Vd!|3~GY_&AxB^c?fDH(TYxs@E4=L4Tj-b3zM_Vn z_ts!TKu!^sA>w+q*77|+1!zs1CpjPgo)GoTOig_R__l94!xQnE+U2RJTwWSd#6Vlrim{UV|s7i7K_1E8!) z)fh+6atcE^ZTeOY_Sf{a`}`a6bkJ+h_eH`y@82lm*^f7Q**y*JbFV7 z98qpHkV&MBtFX|+05zdNzBo6MG5S6*H1uoIxv9PK65P>`g4VwB9pbF+<#wj7{qiCO zZdA?j$aE1ShlB+E9zB>EU7Vj`guoR8Ss)=H5l+I;==BSAdZI?I)$q}0f8)wEyw6k= z9P<>LEJ`Jth1$jDW@cbGbeE1U`G=<#6Dj}d-~o>C{FAJtq5^0ZQrNUJ zNd9zbbG|ivPChqu zvnB&CM-v$3k9=u2YoBls`gZL)9OtQoEXZZ^MqK?-Z7buI=B$PiQ?a^Sw6J-inZ;oSaV_b7t#ljVXSl6bJnCeOfTg%+0zqakfu){bP-bnU}o5M>?`C4IS##d z$@Gb@b9i;O@uW&6S8$f@YlJzhpkvW3UXQQypO(8-pRX4ZkuT~{6-IbQ$cU@=`wEq@C zI|=jl@)|#YQ+Y!cYU1NbLmka1D!O6FZh1t$cUZjtcNvIU=!jO}c3TP}vR@^lwlO&P z>TL`d;(;IuZEd?~1Zc^O7H1o0Q%laWCG=*OyTuRo_cT>6zPE8l(299I)D6zbeY!r< zb_xTKb$NN)fnxNNqrvsi2y)XB@GyTmu8#xCtjpaW$aW;Peq?Mco&!jEVjK@2?tmxV zjox#$|8A5R!6GC}Jv-VUNCh&Hjqhc$S0JpMX(Lq-eyDVzwz~r+7Ob5g*?P$>HO;6I z$LN;3b$Q=^gY&=H|BZHT{DarYZ2b1{=Xm9{SSNtnZ=iv0;>iu>y3wry3QBujAFH5@ z5ev_zgA_yzhggaP3^B9=4kG`9i{9F7#17;FlF%#~)NFi2b;OW@PFy*Dhy%+(U;nr! z--dc}%ZZ>Fx25UiaJvWA-qyBxrqRNHs+4UI>x(E(5}$#5fYBhw!E~u;$5^k{&GMJJ z*SuZHOlfh5gJc%Lp;r)5RQXiWn`1CBf$6Pij-DDQydV!t^9R zmx9{{I?MW(Ve#+wHo#Y5f4%5x&FAbJ4HUNm zCmj~U@Nn@9wUVv`PK=&{1~w9V!e-wZJK>bu;F&i!=rQRi5&qW>Jk;*WXw7j|7Fxe4 zl|dH8k$|SjC)fI-^E+2TGoO5!|3e9EwCb-z-^2dYfpLWXr_19o%2>b7`u4skGQnbI zi6W|!75N18F6sY5^XUN1SDOn;M#7LO(9t)|9qAumKCT*_4CjnUwO@U1%x%;c#|*b* z{CE5vTL&;X0AGLY!n|eyJY1_LAu#c8pJnrmYPb?tFbZ0>B9D@Y@gNCtSY$D(>!h|L zg+K3$yZq|@4we6A64cUzt?&EXmG#F9ejiAP0yq0ZRTUq5k@lq#&>Fz&znJyE|JuKt z0c?U3YUo zB6yxEuvkbeF7kqxk)~8wjW>7>{?dF*vxD>(QLl2hi;b3`*hfPb>b^K zx6TRU3 zmFAtHhIO^IpiS)_9o;W3ZzLZdzfUk8k$O4sw9XRu6|&Q>wp#`yY<`{>w58zs*zxNx zC;nEzr@$UgblYVHAox<_rkRlucaUj7NL0CI-<}M{y`@3o0}nXfW8VNECUzIhlG`gm zd0rTQimzdm8J+0Q_MDGurM2bBTc%|=m^K8uPFo0Mr@%A9`m0~QxIM$-$CBxiLgHV2 zc(9JTD#3&Dcyza<_7Z#Xk8{qhgq=0p;#|uef>MMX*p%$)XlQG{F)FW7#a>pV*VDPJ zKuI997#So3qA>tdu(GlBG=RD=-iUhxs3`Mo04gla9F5<*IRGnT0uR+W)iSUQL|VDj zjz`DDaC_n`e-tQHswz4q`~f%iL!bZA+L{&zyr1ZOT-4^nGsMsC_lJGt4|4POnxY;d z$~;K?S>z9ob0|^0eGq)3#OU$UClpEArEy=-4S_gpEsCmjSJz>Bzv|@WBWc-Ycntz$ z1y<@cw;CFPD4r;-D%BPH`b}*b@+i0I$866uVqb3y)cZ4eqA*3Ku!exMM{_c`cz6@G z)|WeRyyeDQK3cyA?37KsP6A z1}u!yDJ_p!f2;Pr+gC%mM`bJj)V^W8Ih=oMqnXW2_A|Q|cQN3~8qq{!!OAXfZpXVl zJis5Jx`KZd%#875RMpi3k9L?Q_P`8PP7>+zJ9h6H)9VruQv)RwX$}ovR`afjOGOv+ zBIhggus=2&M&q8Ccd#K$9;1GZ%sbVCHtEw7I~w#GJsOUFS z!xUdVx62dx@}OlP{v3P!9X#Qk3gK(aXRJDUA0mR!m^g3e#*bb!XrT&JQkXXhS1zm7 z_;(@fe&r-s{~nhMVG3e2&(cAYT0+hFxSW^l+wb6V@Prn z8HcD_*mJVu&ibNfZFv11Wi~hy~+D*&{Z2e}$T*Q-Vw)#RQd0cbNtiK%L6UGBnT;$~BP=i3I zV6mE|+EMQQXZvGRFeJnyhrT3|j~JjC;?Ep{8z-Y&0v%g2Q;(M-AhE>bJ!H0uXC~=r zGIf?GQXT|a&M7O6Ce=@Uejix=5+g9W%B2++$G397b%A>%P0Uuy=dAc4EabKD zz&>yD(;y$`ERQ!khAkfu=b&dWayUYNNTCsH2Qj5 z$gVf(`X8Fl%ROj?O1*<(K>YJ)WY3BX68U>0c{WZJvmrxFand(vDWWfVe<$GmaHL-H z#PlSms^PdQ_{^_3G3wy}_p`Gludwmi-+^oHAJOR)2L{MeyK3Gpd$18IKxyiD@ch0~ zRa3J3L(8^+_k;fXo_|@*@ZS&m?|c6L{JNF|YR{)37A0}5 z87qkg2Vh=LPcH?cRg8Nt{5}6hE_CI8R$~0OA^uuy);dVlB zGu^PfrIT!ym2!CM3Uhcco1){gUZ#-hBIL`wSmHJR;(TgI)Cm=!Z?p zo0^*1SwllZ3F*adFFFtB-6U8bZ#x16qr?HM;@RBTm;h})=&8&fiWr)j=8T8E0mAFD zqX1~ucYnhZfPp(>tdGFob^=x-;P(9l#KF|m)P`-@@z|kh`L^-=m!e$@eFRYq7-DDn zkvJ04@B-KE7O0z<;&;M8%Xm9R?z@due|l{*muaWBw>OY^a{gHo{zAa+lp-grkSY1(hbCD{1jw2Z+1*QS5_X!Ql$DA)m)eHeg z&1RHo)8<5VPlso>GqKZyS-;;z7*Mjfpip!sY@Io-*>1LB@5L8l|78kGferd&yX~zJ zSzN3e3XF;{6&%T?-mKG$m;N^lxatj$NAP<;f3@raN0UaqyZnbY4-AV~lwQ1S5yotB zM+D2o(y>obKYAsjprrKlAkI_(aDJk>f+Z#1yoJS1!)tk5O=ij}z&aMIBm9NyGef$!Zas5tRxI~?N_1{QA^MCpSK33dLf$DAmB)x%sKLUp2`EiM?C4OKW1NHUwHSl;U_J}-! zps>cQogg$qL{>Bc01()6j-XG_aiVOM)a%9`3Pj8Va(EPU zx$$AGm0h{nmu)l)3zYk5>~WbwCm;e8fFVo%yKfl z65VLkLXXe?Lzq$I z57^20^6E)umeA^1emcG{YaT4v4E-1)tKh&55JDuz)&=6=qTa9B+pxHa57u#RRxR!AxQb%CyTC=K+wfM>dl#k%(86wjYuQr-t$0$KoTBh zeg7*t=JVplz7GH?SJK=L=;XAU0{lqmn|C7=d%%uM^fpmo5y&r&CWt3x1rv4l>7-|`u@M^&$-x3hO~q&Kcn#e) z4=rH!tuJW=y@3yngH)g+eRO7$&7bu2D3s}OWoq<4D&s%F$>qw>zvv1&RShERFR?)J z9a>Z%o)Du>lz)WP07b1m<>o(3tADR;|EGTys0pnP`&qvsb=dK_2 z250m5oVz6JqsB9IP=!V>{;lYTh7lkBJELzJp1$=v#~;sn^r+ssk-r+34rYZ`UH>^5 zIKQzVk$h0NT`y{KXgw!d$~-x@x!q23;-ssIjNi=4yt%Zr^o<)g^!4?R20tMXypunE z{1_J(mz9;3n;UuQ+BM!IN6s%iBP^Y1YHCt%Z*N~(Uar_jNs!?=9CZFhs`l|6+q{nH z>FF_?3ct8;oUjyAc#@Xz;tcJU(?Ud9!a0gFL_!58k&JWiRxZLpZ_ce=#w%9djD?u}fB*hnXy&~5w@Xt~lZAz4pzLY5nB5-^&$asY_R9GHe!cG{*N^Mx zx|Gg`Tl|p0b#7d8@`_ROU~|#5CkmRTU~wTTwARHN`Aq#THcIHaD!Upzts-F!0SA z&bt!385#GTFrgL@5V#w@{z3TUNxfW`rpn3>*OtRhnEF3`T3S*<(aP`oMqFHc*xtp- zX^Gpsxw-k*$Xr9B>aI+IBvuit&YDOG*UtIbTA7a4R$74_R8;s$W#yktZ0s!>nwt1o z%Z_ihj9;{mG5X1Ozsb9ym8?HMH>Z65eBUu;6_tg#xg5udcCYZkcGIF4FLukw$QT(J zIXE~dDOI($YBTzk>co8gdQwzWTT4sp+BMgv4_79;a}PMOi`rZtZG39Ohn*2!_ybdZ{LtKyAtD2#i^;OxOB}cS0eG#SbpF9N1r|&qwuz! z{c~~Gu3cEX%aR4df%B^;j|&OCmU4A8F)_J%m4*Mjii)(u=*vfs9>v7;d4*3b z+RqssJ$kgvfA7HXFwfDWE2!c~iM!2BO`r9$L*Av_tP1g^=l(5}QceoO*+F7u=PrG8)2)3IZUii>Xvx2wvm`_Nv^w24VcvC-Ck z<>MoF^X4JC-?&24ng~iNDi%RQIX%6uU|ub(z4Z7BZp`1$4-ZRFSUAUFtl7YGeIAdq z$8$6CT?*d5x3~A*yLUM`IeU0D>qh2A8WI)`WzGHFR{AOZ}LZZeF_<{`&P*S=lWfBlz3>{jzMX*x=%k-BtFD?d>b;tBcqy z_^0P+mtkQ#dV1{LV`F2h*sONV91@Pl1a%^%-B*5B1WAaCPbo+_>c_TuY*s>7wCRP^H9-JTfXON=2jln`L-Zl)j>3IWA(vegzFh+QR0~&#~$al5GB+YeX@#Bl&;K32n zD=a8zcKNd{c3^Y!!eWmn8qo0Q=!f_3QMn7acgzC0ZEKTkCYF{LW7MAb`O(QnPIND5(Prl~q-{IHcLEXJ==te*8cu z+wX%e__r(D6z|p;A!wv9IW#j|e}IpV5B&y@cKfbnAgiQ~sPzXiX1In_3g5`2)o7@c{Fy({I$SqvUEwPz0>K7979?(?;b z=1)4sdo?ayx>RzCgCqLgyWwyV>nYEuyOZ7QVt0P`7J6^lvIW0VSXjuBAnU%dw%nOz zhxT>Ky8GCH1I5L~Y4#(RY8D;iEXFM_&jV5fOXg2OXovr@e`Ik;cCO<1n zEJ_G{sHUYwKh|tf_6JvK26WEM1OCyUEh z)?FgR><%9}QqkQVRc*q3@L;cJj&$OgzgxM&t80G#)J-?T{^8|E8z0r&?&((kO8HOr z-AQ9(<0+-Pq}O6uS=sDRt#y0)d;FY`(3g(Bq1x#3&1dwRMB5Ffi3cxVGN3P;4lXP# zgoK3X)6g+6G&VGxC0=}W{EUKv$#j1yibprohHJz7PfmP^VJgLdM23E^$Y-qP68(^y zkxa#}Uzg6D=|iWHC!Rld?y;|L{M)zoALHJ<@ybv1_4hYUYg?S`2@D9(|875mHnNu* z&sXg_>DBvDD;dvsV`WT0Oe_m%!{!?&7uP*nm(>M6Th-x-jtpWRF74U0Pj(( z7P{uCQ>SpT#28H0+Q74al@)c4F$PuqUW@vT2HiDk zZPVAjp}qa+!Gm&g*MWM<58vsUnwhz6W~Q6#63mlzXYfJ~y;OT^t3QW~2RhTzg7^LV zTZV++XJ%#s%>`bxeemJKQ5l&{%-6@eYbLDFyvmn-30xYNFV8MaTyvWSM6tYm`@@G1 zmo^L{7Oi<0o}hWCsnPnC_D8G@nCX182+PTFyLIbUh6n1!+1dHTi4(pr=H~1H8#ix_ z`RT75s>jX`*e3-nH8ei%uM`m(Y5MckbF7w{+VNhKEW1N*>&>t|9?`H12@2xhMV+R4 zABlX$j9gn^XJ=#6&v8n17}MObW5>md7u_VHLPNDwRaGxt`jVbLSM*@V-@ku39B&vJ z?gozF;Fug8MayBKrR6+&w7tBK@7gzuzM=jv`MckyazYPNTD zT)TFSb?;tZKR+!Eje~~|JL1lroO(Ia)6+?{o0vERU^5-ZHH zC5%D9%>i=@0hf_Q^EXLJ(xx?RHQB60E;MWOs*@+bl8ID(t@Xji&tG2%|NNP6*RH^@ zu(rwk%{;f|J2g~fWMsH|-ES6q{YtTJ2R#N(d8{oRPz;EWbpDc+rK6%!)6ig7A1lxC zO$Ohn4i_meDe-ymU?+#P8+HrUZ*-s)Qxt1etC#J#4(vruVO0J4B(GM|`0D$xSFeUg zMkczlTe`aRE?+*efB*i&hYt%0U6PkSBrH4^YTz;AdRg~ge$diTv?tc@>C>lYWo5Cf zE^FMkT2pS|@_$chAK{4+u~JJjlzFPD(*@0oslbwZ%IsU?Ub@@6A5);>C*# z7cOAVd9JT~_44ux3DICbF>>}y7omI9jXy{iqK-NBl33$=5J>ryseT1Bj?tlONAbPRn^R-cUGWbop+ zT;u)St2j_VCTVi=9yxVUCBhAv*%j03EjBShvq2bxv}Q=^oClJ58yJ1wiVo$!Ofq{Vxh(OM% zFP})SW8G-H$tZi^F-)GAvya-_+WKxj+gxAl!M8K4d%!hr-n{AR>bh1TDkYVhn)>`g zJm|vHeNyc;H8dREb#U41iNMPQbtG%{xos)r%4pjG|l2W*+ZES4p{?v4F{lt~ZVBUTE_5rl)+9xS$(|h{# zX)hn2t-%+*W@Mlp84HEshTgw_FSEIJLi#r||qQy{4^w?$~|G(*jeKg~|H4EK)AQrq1&6+b|+ReGATH37(Bn zb8~kO4h|O3`<@PfbTRxC-B_tX)}5Q}>9?q;s2Hf^&z>~`2EiseOB7`G$8(;Ynj%tC z;wPWlRj;VWDfAKLh=W5zssNx%Q+@aiIXPoAfy@YnxVH9oDkAaR`SZ8T%xsd5>^dzl zZ2vtrwtsq{Tx^Gul2Wp6R%~3{Z0SQm9uX6iU4kk=>&hIaCe{a2AGf||PcRtj3DX*5 zQ`3Rl%7^K}!31RW~#&KFQw!OhMIT|7>Vg7J35o14UoN4K%gP#p z(*ZwreK>UZFhFtE_wRT}z;b_EQwNF@Fgn3^E?(RT4Bsf|&G95BXRZCK`7U?!owq{sEFC(8J4}$xvS{UpFa^1Y{1AEucyM%%O)@;=?*Ax`Y0c+E6%{KiF|hOe{CtT&gBMxQ z^XEFLhVmIj<$)Za>nKHxFzN+DCI@cpb8hZBN(MhGDJl8u*Dt(VWo4x(5fv23E}>~) zP>aE6(V7B|vEL^mB0@+=Xl8a6Z(wh453=WC0eJXQHiivcB_`&Kwzdv$VL>*K2*Ecirgf{c8z9A?IYw}!52PD&T?B< z)*HtN`P{;4jJ4k{r;YvyTKrja?<=9;u7aFb*{HE<^Y~&rEqYe|Yx}e0wVe1?Cas z@$|1>$3{n|WZCc|kgFoxon2i| zNT*nJiTkLXKTqkgmxbj*Beyt84%$jrp1Z^bO#%cP9-bcs1*flEY5MWwM@PqMT8}s( z(}>fcd3AYt@XsFrIB_wtJ&cTCzdbo5kak&Hn_24>wh5>i==*MVc0NdY2UnuS>=Gag z$r6X$i_ot*pue!Obs8Cb`}Pgm511FqaA0t-v`yOH!GTVeTP5N&5o(vQiOEABpQ-6- zIz<%8kt0Xs6%{Ajzba{IwRCn$g2){?atq_Y#l;0(T`NgE*+ z@5a^zY_K@hQCb?0y?FAZLwAmIW&m1ESXh{kPYF~S$APk)`-$xA>>xznPx1hG4cBo& zsM(ioXJd1kh_A!)Kx#NNP2MtEPemJ(v^Le7=!J+ z-^Zjj%JSyTrk=|b*VX1-#h=)j1hR^#$jNO@B*y}m2Az$q0gZ~5bbb*O#kQt3TWM|e1bbU4l zMn=XZ7OU&mQ_SjPfqXWiLg?>w{&WRIgXi|W$7?KbkR#sLh=@0i_ ziIA0*rQwj))zzgwL;U9tv>MM^cCW(Y&qmD9nxFwHD3k%L9XfarU26+Dx$m{O+;gg` z<*XpLz0|U9GAFpWVo>S=hvGOsViQJVE|5RhX1)kj4dwupuu{d*iFczCy5wZ z>-XGrlIa$16BNm&4rFpPP9EyqzC`|)Y;J48UF+*D+)K*;hiXoqBiP`FD?lFzPcsHL z2d~Ys8=^6#Y*`(A0w~ee+IongFH5Nb}0;TP>CGqZJn96paY^B;C~w%tCJ|z6A*FOYz`edgrE5I;lr=GI_+#n zzM9ibzkYo&t&KwYg@iC(yjTqp5YM2G;SRPBu+h8ZWP_CJg)fg>&YXUDkK;#ZreIKX zbaY6_Dc1#yvuDo&Tv;(yY{b@^RfX_DauRi0vOy6;UzBk^Colit)vH#};eq~sP>q@> zDL-0ZCjBqQzTms42@{iq^j zz!CfOLizQsLO2J4 zb0FT>uE>=>ssd~7R z6~2eJxA(TKTQ4XnF&)$PvbzE)SSU<6mL(uvA5Zj(h6ZNMJo6(CO$Fivgz<8YAB#~` zd%e1M_SVCnsvudAwCHHsQmE+c$1-1r#?nHbSyl z?EV5p9o_~o6mHnm)D(jUYGV0OY?9ZnUq5{G2;Uq?rUyh9mynPdY9tg;OkWTMd#tto zUE)hGIv~Z!!NI}IoM|^y1I>1JX6CB4c5n7Er#-KM5}}RhKw=tiO$8dx&47ac1@r_; zJA|MV?PE~u0V?%Jw{PEGURuhh^W|+`o<1%`ODm&%YdK*~D}OeixuwP2CwFvEJpt5q zSN(}4FUobN>Gx(B) z#iDxfD>PjYAex4ThJ2rX;K73j|I|cw)YYXp&zk)GMxAHm?O;?^RAe~vD<0E=-0I%u zruusgw4EH1YJNy5MESLFMQ5j5L&8N-UggV|gJ3=tdT-a$)y1rXt`zhBeOO3{iMhE1 z+71MM5vW~lUrM1L{QT*EF64Q1wCY<*2XM7iqemGT8M(Q+-rnSNo7=W+10q&XPyhkl z*x0b{$(wNhiLYVR;bO_9&8Ns&UUEiYo1yu@T-?LJP*Q3FU@s*lg<^(-6#Dx03jD4g zKh7CWLKMcZblX@X!6qLyP0ePAKQ+-Zo1;yeq)knJ519XO9L%SByXH|R%Lnoe;h0?~UW>^PW+sHhW~DiR!llVjP)AF$100iFq5vLB@jGL5aR zqPH7)BFsdkr8k1+Z9f=BFfg0)?rZG3H(C5fmlF6GSma$y4BhVC_i3qi?kwH0uPf7b zpz-}>aw|isD@kV|t?~^SpcM`}I$K~^;2g9de}Dh( zvBZRgB!m2Y)^JVsalH%;ZRt^zEDU^DwQC*(j%?HLVRZJ;c$m z-x9v>OU^U1<1dy$Jz%=@)YJs{S>B)Ay~uGh_LlY(%g?{@vgPwepMFUX=72dAwh1mR zEn#3{{(*M7C{z8sg=q?XcfIlmX0OWc4`jVNSU(L>_9SbLr0O1A6O<*!sQ#Wh^b@`X ztV)1PXu#M+_!Sal7k4 z+*s!JSR1X2IqT@?2oMXX4q8?krdL!{gqZ|^#|lGia&j~Ec9)!jLceaDXy6pc9D2;q zKT03IV)d!3k5h!4Bj4z`JQM%znFc`zhhTi%ZFRxY zD#x~0LQa#GW=a$)!szHIOpF6Q4{6w0*xB7d{m?(4VQ`4u*~-Phz#xnX1cYOJ^JZUT zft2Q07jC-0zaM%rHWju3tt<(*8sz1`7fyQi;)S8H@mshR28>Kha9F_4Dk~}=Ytl`y zNjO>nLANC7VZ^P>w-~^o-0sxgo4xSWfHM1eP*CytI$Bxi7Qj6WR1XTTXJ%#T<$L6o zpIy;@+JLTgOPEE42jE^;Q}git{a`(jFJ9cg`~muin1lrVJZXfFVH<_Md`UZqUWFUO z;{<29bLS2dzbtQD!7XkG}AVVb)wjH0|cY8Q&!1>uWefI+c zcRf$^wmYAo|6x8hCx^|tvAMaw^NG{@Q)t1M^)P@$MMZm+3?`5A^7>9d=dcnhA}gQ} zB)%^$r{Yshq-lw%Jnj=3KT|g^=D09_;fF~Y1gDPnc7W&a*pR?zC(WCC#~0E40Gl+9 zevOGCQ)Ng69PHoqlo+G`Arg-qaR4btIE{YA0+N!tNMJxr%j_&IJp}PnfRrtHFW{|u z{=DbB_wZbixZA zvVW4)vH;O&W#RG7E-o(4&Ao(jMo%9ubdxIesvqnX4B$(bUOaqQ2COEdIRW^HeI=FD zZfR{j+1ID8r6mGW1X3;iAW9B91;l%zDuU6|DC<^30#F0OK?t(+ZZjneKdfqNZtq`r zYCP<@QnfN8v4!9BPO5>`t=qSSPMylL>D!V=-ncWo8Y{E{U&iF;t21T81&h9`T17Rh zZR2I#e^00Acf~!S8Fa}vIE_SwqT-|Y_(N^vWIcQMw{u-IRnVGG>mHk;Zg_jt!?nWm zqO!7+lM`tGW>M`YMDKdBiNujp)W3}t{jZJf|IQwr+t@*<$aFijraEIVNSV8~YkG&B z;Bsu2l#IfGFkj~^4!RiLl{TK3B2!bNYWug63ybwGeA z{Z_-Th6dYpb_qu(SJ#e?4hd0F2F8s=BO5d$7}8MCk(Yp)*Ic`}ZS8Sh>hFAapTq=^ z1jIc?hlg7+!?<@<)YNq2xuCO!@?HBgHg*lt-#-#n!>?a94`6iWd2U8IeUgR`1@VTD zuezau-gL4I8`K13+`oQB}D+ZM;&Z!#ccbxCfW3tP~vjI2iJbJwe4*|D^33JVL$&XKn|3i#?dRd z`|j=y1S-6pV|!hvo*vqqhyy2tjWdgjo|u?G+yRXVp|!xkgsgfg&-JWE^|EUk21+iYHI^YEHC86i_wrNE%?9CoxSaz^sY`@9^Bls8>$#Y_JPo7 z-NqZ3H}>LE&_J-o#l=}XW5?EMYbH-2#b6t&5A?Eq`y*^C7@^oYdxE1TPuW5S5P*a(#vc>)^15i77EL5zl*ZNUku@Eam>Qmbxou z>bvEY|H%B$o?t$_5*>=3aEXUuZ4>bW5+j4Sa{vDQ!>Uo8tLgwhflr@0z-OPCVL@m` zeFK#O$9Uf^=)ELk?)h`|3m2$NWA!P#W0I2e_4F)_j2c48pvAAFf5RdH?z#%&5o~GI zDWUh#{1xs^xWkb`H!I=VWQi8-o6k!J5IQa(Fo_Pn-Ickwd~W{mX0G$>A2>={pR@~` z>gTV)x&iuI{qli}Kt79aLnH%yjX?}%QK7{ezz5sQIx zI~}192i&_*^zL7_RKMQ7zI(Jq6N++jHvdM54QI99K`^K>UH6iZlyt*W0$zrs!9+(_ z_yFV)-b0BP(f2im2?%jj1?kl{Fi@6f*49>XHa)_mCgT0uw?4E;N0pS9(Xz8g zzI-X{JYx*m46~J2YvpA(yFnw}fE>{Exd!RJq(DBSo7&&+zGDF+4y(A=}-Ic0fH zonoxzBH1O^b};dGX5URtO%>$NM}=bDrcOQIrvNrnR;B>!@Yk<9fDmaW z)kR|4QsK8?czeG3B>pcwQ?z0T8jgzvoa%XWcRX_@M#i#{R)97Nw@U;!=V*t!_Arhh zeE0P9bac2Prjd!R`Aj=Jrh|$Px}?qByNHkWq#Bh2{fOO#PU6PwUZS3%+1X`JvRfdj3LNC8fC;7NK23zNfEMe5dg7@ zmX<|)MT|iQx^py}&a@To(s+qgp;fQ1y>Sy6FbPcQP(qw?zN ziz+IAu{+5n%%|L0Kh^qd%E#=NK2u_`(Njc5apTIBJ+kL?b=kP=q2%D^ASw6nIU*f$ zG(WIO6ydgkozU|^*)Xg8*~IRE6@oF}yLS&JhiR%dEC@MwhzB_!0Ck;fJtx5Je|P?g zc)#T|b0;sCywl@nJ#;ap6)(A-Y-SsItpi3@{`i5sC?vFarBIU8g47472}mfHkf!?k zP0O6n+qpaf0_CjmML&Q3EGiKPf8@oBUobwf$ZTwEQ}M}n(S}MKVUC-IC_?aH_G#=h zdJvL$`O%o#P3EGiOU}b=l+LSehY%IRu!eJn`PhXTyLz?#^+|Ic1~5z5W1&z{f-hLY zi>H^jKvZt&>;c(#p|^oyq+nwNMq--wPwm*X3whgpVs{Sm-?gA|C0Bhk(> zsdPDVZA4(qpqtL7ty78p3qodqeg>H~WIbe~535Z`rheO(o6t-+jqH0@O9pwlwyBGA z{7wn~;QGGU#Ub#h_{;2dkG)V6!TFK!Gv2k;O)HblM>uk?UQ?}0a`6e}pbzhAx;*j; zAUpf^ML|0Q_aS*8diR8v{>!Qd^*=m<-+*#6XidvmR$%k&T9K~u#@L@fArTS&w1z@q zKa$G&aU=m16OVeD@ z(Q!t-yMLlC=v{6P+FW4Aie_iK_Ke~2F7hgg5WIhzt8VxOhlV1fvD?}8gpiQ*&zT}I zc0L{+8wZDzu-yd(rxzDJ;mJO-yrZHR84&>(jt2+IF!VFbn|@x}bwOECG4b0s#+Dmt zZO}oL;C9UeHugG#0$tSWKmXW^ zAL8OjhIF*#K?w<0NN*5w^$`C{PPTS;m+~&GYi?FiQYzk)q@TO8vF_TRx&qk}u0?vf zFiI;TmsP@b;ghd#1=26YMMW5*q&UqP38ksXCDNaH4qNrxw^L6Q=$V)d(#`0ecfMx= zSP`WQN===HUjS4M?+{vBFBSB*l&@d+(9#wNU}M>m+6^{Q|9z5}XKt<(kGzKikUw(W zVz0QV^0xPA&-6&UplLvO<&bh|?C!2HNyD^+i?_VAGEp2V2yfD0+0bRFPCis6a*6bl7LsM~a`JS8W?y17C_Lzc~=)6n?eDs(9r?&?ef4N|?}1Btdl9ZUnj*w2O<1zJfdrtmG|4J!Q1w60`|ZV-|K7 z&OP*w5>^3D$AMAZb((0s?k(fn@cQ@>Cod@Qa*Z1k!N5i$9(9eW86-+Q&n+ve ztDpWuCcyYmlkn$t_x%&;z@D6{g?IfFTL!@dUs_~_U!Zhx`$(nv?>#}X7t_Q9H=;pm zKYlbv%)_d(qa(cVy8k{Ygcb5-4o!}acjmfgfXbrNAP5i`s0w}2L)*6@NiTbf@TWF9 z83l*tYh^|HoADxSUVm5C$*sT<5X|rS?oid#w8wO>QCb_kKIofpA!UhANgDI-p`p<5 z@Q?7(fB)71xr>N!0~G;sz{u@H1=t-tbO>dZj{ph|`5@>N>-Xi05Xd1e1meQaSAqiw zQ-JXzFo`rC=#Vo=D#Ay;l~@~6mKCrXdvRoN5RGgRLNvaINLY&YC$M8{YinJ*!OCE0 z0_bK4btkIvfYt#iL&|qb24oMuAWs|_8ykow0cX@7Y`Q$B>3$sSh+fwuuS@gT&b7f> zI<2X#P4ejem8j9t)@ER2{ADH#t^_26+yNz}@7uQrk&itUJ^|5GL*wP^*W%XQlAZqw zn6%*_V5#(ujVZ|;A$Y&- zX;4RF0n`hD@TR4OUm6`5!Gqa=qg)#;ll=ZY^fsp5yT3!$l{JGoj$&HMazc;sp%v6C z*~_zm6e7avpm#fW?u=c-ZiMTLV>+Bs#)%Ch)D#0Sv{7ilyugNFpzP}Txw-5zGg<}) zs_~aV29Y~H6MqRBxG6R%Dpbm4j>x50+u#?3v1m?bEag@pz6jvd)|2C2H`HR9%87aM{~iCQig zc&?uW;)soSrO@8m+RF*Lt90?A6lM=7)k{{>rxaI@bfV7X%XSbz zpuz*$gL0vSkX$f?ycR8a#86z^u!NZN!6!A<7O)we3M!HtLJqiO-zQIKdMCELxr;~_ z*b$VDFKrgs6lkgo3yu-l+dMhJ#7csi@XQ8A%=Gp5$)3ZJ2eYj*LL7VdX5A>JIB?(q zu%#|&Nx%>(f`i03DqZ<-kU|`iS$KgHmbJDroBk*pwkL%%NoKnL-UHm+c$N>-_%6N{ zrqn{l#30w@WR0*L_7+gcKm zBufep2`5Vc%3%9NNx3SF!_p8G5vi@NhENs;0*JnZNV$SPGjz0b!m;u3H%&}PM;O62 zH&K`+h6+#vAUi@GJib@6aEyM+3w8t`rmzzp~ zFsx363Y#v=nzN8^NUOtXq(M?Q4`AISdTH|Tfo4&abUdh_NuvLF4euU@?(#ki50 zuc@dg45Kl~_lSJ<%m!zr1dYm|nBWx1&feTDy+Qx~xHaj_>#E89l!OEYAO&3C;%zi0 zbS}Uzl*0N%QFS$+nAq}(GGf7Lw-HX`RBgaB@5UuOPCPNyNbxIbY6z}N_d4RN1Hd!y z(W9B-;slokd2gg3Aia-cct30R#1r=SrEoAjuB2Y@K_$i9(R|i zEG{;Jii%=EnZUD0k^#WY;*UOCz)P;#?)p z)ZuZF4hQw8-NY^lPH#IiyeOrM3jfUDODnrQhUp;d!M(uBRE>aaElaqlb{Af70 z(8J{R3IG`w8#`s1gI0v| z#yKwYA3FMw90YM(T3H4Z$B~S_J17n4vq;VF_rZh1dq|I8MK%ek(n~$w0^X}yvOYMh z{XIW_6Z7W?LuJ8!+76gt_z#v3d+8V-AI4i?6;5Yv-MSU36?6wkTi}||p}(_B;6OEw zDnXn?^QG_xZ@piIcYy+iY!w3shYT1L))pe9XY2fvJ-oPEcmn7rKw6g*I zg9e-ql7!rUK;U@z@&pf|hxfmA{#*^&k?DH~jX+DOd4bYA-~)W}csEK62xfmECqLqa zB?5>Y;0Bnf%a8#Tgv=CBY@N}oS~OTcnk3I zhRb;7f$m_%AbUYsJl!Kg$V}*|rC(WEO3%n3Ma(eSNe6ZWjVNT#;XEqto*1*2k*$M3 zAa0UA7XV%bD+|kh9~-M3%IfO2z|9C?;Du=gS*aumF$y>mX18uZ-uVjL+3f&L6cG~G z-r2#Jrdt+Yg@x_iy}PKqd@+>~4H68ttE&sc#~{ZE>TttGlr%xNWs2MO;y-${vbL5KB0}h?q(n|U5?x_7aJ~xR zv8E=Z;*zkl?LzK4k`7DL>=nY%@57j{A|iJ&y*bQ(1LWZkphIG@*QIO;6qKPd^dvZC=f3Ppjj4M;N)!n{g4iv0B}&e>&_ zgV8MfdJNOl-29`juP;{o+&SXG6oLUce_{q_LL8(5xjsMzn?9Ieq4j=mB!!p`h9B%UiD z-2Ego81iE6~kcf{{cq&VrKSV?` zc6W0l5htZJN}Io(S%_t1;;7vpbd!>KJ}IflVfVuO+b~jaLwHIGFamMIsFv&V%%{cA z&21%A^fHn1E&u*ACH|B7OX?0~gNZzV1u);dRW&bbX+d)9vuYu@#X(_0d(U)R7P{NP zb`TpF;|^D_F7>R!nDh(SBj6Dn5i$2Ts5T6TG!=|d zH68{ixzQdglw2iMRjX~*N0+2`RtDQZp8+q$H2^4*TOH)#F$3-b>nFuo{r%;LB=s6o z8oN0cDlvk{BtN~W=>c!FjHd^>EYOGO$S?$2e9Qw5qo8_l$M~d+J$v_tg@;!e3xS@k z-Y`J41Sik|Aue3JmON_=r9RG~>TrCz$X8Ge{7wW< zzD-{d?0yQjzrBxyc+MbDcNJ&yag0?%qvSI$PF`FA2r@H!2cQmH6MY?BQ~m1ICyPiw zkexL|M0#r%))$x10+%$QvNVSnPV|+e?oLmV!A@tzPUx#a!$0jB& zzQj8>H#WjoY|?At_lZU^*yUENOPYO(W(G2`PFV4;#R+j@g226x?ru0uL(J2Vvd_%SwQnb*Lx z3+s~)SUlGxoTfN8;^;)6FtD!Hw=Y{ zBOsU(d3hViUr-pWwL;v%>_WmF1d5sZp|9`x3@Sie9Key3%t=eTjJ2q$GKT?)k49;1 zX#vsS{{gMI@8t)~41Zr=TRXcQG&K8iZg^YMgw6*1&kP{cAKc;4N3`kkhEjkARKfut z(g#*RrQu&#o!3TA9p`@u9*@aAw7nf>-yi^?Ef_11e|X&rI96L*`4<_P}x8PESv_<+_UC%io;)Y0-yw z+bD3#KCU!OJ;%O_Aj4QgoSUA;hXrZiGlLf15th{L{R$u@A?|pEh_&aHTAZOs* zK~y`S9ZYO&>1SE&UIKCGk|RZ(8odu%y-*Q96u=;+tf&fkq)R@K)L zYB(j-9bNjKcs$=tg-p?;VkHLq7^?z}ew>A4XPRJwC}E_U%vQcwDSFkSQP!>5WYulK zz0dWVOKbMs`bEQv#kwrF^8Ll#CgT#f<`y14K0a>lr%#{S+Sqt&kh!Ek!#OW z1x(hN(M2`E!6tgQZ~uA3`p^FgkztD5{tQ&?@FNErw6Rz&G&(6BiA5mt@pz;fjugXz z|JSQ{6bfEF{wBQIuZMVD_wg}CJ;SKDww78wj!B|GN?@EoFhAVe?BUN4v3=|-u$ytyfM{En6e5=H>;7iHZ67X1THf%5fK&FI+It)BF5Ws=K$h zQ{8+02cp={3lVgf`thSi)BNARf2)6v)!FAh#D@}7ba!`4dM=G@Eswt_D~oybX#BO) z=PzFfiBp05FM8^wEjq~q0sDH%s1nRgzP&i?wEp9L zz0*`mbUfm_$ie<)u>`Gxsc~(@IVRDYZ$;N0Ll8``o z(nwSD+!x2K>#sc)X=#g}Jh6*-qwT&n-4>Cu6Wt|1H#73&dghmUCle;38>e>9>E62a zZOy^K!FO}P%GOrGsypfNW7MWQbEs;g7_ z(AlZnv;UbAxsmtv!6_2UR>IBX-Y>SOZ_{7OjiT{qOYpgYdkCj*Q8c_sD7K2st4@<9 zL5Im%Sq^q~QCIKq$+*wO=j2SnJL!A0CVzjVawbmhuZ?G1ety1pk2qug3ClOimg}MS zA6%TDnR(zQ@8Tk~$0dtx*!U!O)PCY)w$%2<{Gh6;sxwh;a|()Y^4*s<-00Y| zC28-j$1q+!NBe%I*z9Q|p27HB4&lNQ_1?_kyAQUiSO?m20>3|hPwXk7j5o2B-2VJ) zr!zbD*=c7qqNr#!Pmc(PUlb3B@TH!%ZEUFLa>1Ug6W)_!GV7m`OhpJI`eBJq+@C|>+x z)+#R#4^p)=jwNo;$G{*x1vNH0I+LyQq}prctE~q--sNVdrgS7q^?`J7Wo2aw$7%7^ zjnyd@3g4}zNa>TjExwy-d?DVY?@W!wlywzT9sRGqe08q>LhewxAiI%%Daw&C#}1a?T8%CI!XjsDM=1R#J;J4sqj2G1p+j z=suC`3UOXnz)|1!)$aTig?u>q#4OIo$4A_a-A_KQoxhTHFL$Y~^tM>I#J7>jX1|An zg2KiPq@K1Z+CJ~;s?^iBU-F;}nho)?4=?9=y=>GqBBU6{;$&Ss{whAQsVopmad<_`XlDp1(=_ThP*PNEa?+?Ov?$lq)WwM~`b#svljHd{r%&54QDAQtr*BF*K>ldrE0&{IsbXeO7%*l9%`S=i;7NL}q}* zg$oyKBAN8~35?|iSj-6Xs zrxy}Z*=nOcNUI@!W3_2*pSj|y?T7if^Ve^NkGPWd4Fq~P>qmUTJ{-`=qU?W>oQm9D znRw2YFN`Yql+WAcuCuncY47h%T6E(wrc1ht3@>UBS`{ybio$UflnbA;m*AB4->G!f zh>+Ra+370os_$4Ud&_YUfh#?Eu)DWd(Q%C^p!pib>>MRrr~R<=LYtrW>ZHu9rzshE zyA(J7L8%JXlAnRiOda*IajN%BE?s+KZqhlUH2Dh_M5jd>hCY4LQo?F!X*K9(^=2L# zQzjsFsz%id>Bmd6{?;WRUo|%NW=Y)SC)|A^!K^or6nD*9R}zegjFh+LqBCmp*4aIy zOoHR;#4mn%kr@5+Q|{Db{Os(kl9Ez416~{dTEgvTp8vuScUeS&+4Edc*3bjA@-f)Nyb7#-N8oQ@%w&s z#g0y^?I34U@raacfFhQXM7KOvSxKo)(mzRGhM!;aaKWYqWj9j6A8h$zG+KGCS$}93 zWj=SN!jx|P{hK$}ejkabAzTQgWMpquV#`o7ntvajxD(4FXY4OvdGB7m=kgt^-lwN+ z<95oO0A}?8*wob#O1{$GYo;5xEbczr+M^up-~el584{qaR6BOUbG%ax7e1bdG@sPAoaDyNfN)gK}b<3~~07uW+ zSkpwr)M5mU7Mi4ZcO*c%+}|B`Vl-|#L6waYW<-<|8HR)T-RI}G6RxsRD2GR$zUWi; zapV8Ocz_N84?6xP@SuN_q}`7kd@uaz*8eyzS~cvUOLnJ2&r9c>D)Kh?TOP_me!ckx z%VUd|)8tdWvOCE0gJFF$6?s20nK|+&qW%c3#W5Ct#E?>6Bl#0{kB>HYo)rnL&LPO|M0M)npbYWG_9?zm6erm-AZYaKZW5a3LUAlPpt?E4i2_gkX@TNhx}UEZk%HoJ zI?s>vDpt{2AtWGs9lpMzocC~XsdDX~A1py@n3b zQS~k76_!w0Ddf<$t6pZTqk~>iiCoU3xWkq&z|AdxYWBJyqMwL3Fn$?M zglBX7rDLX$h4S!4D#9^GJ6wBver9H-@}!yC(Aziasr=j~Jhi$8bZBZHvjx! zI;KAYIMxp4H_=g1@t#;6`e-%F8hsrcm%u{A=g$=ePh$}0S!A2;eY&`Hxd8JiM}~}? z93OQ_Gwa$)_)N@B!8bw}S#Bg=IOOp6JC*`xXp>Fi-@ku%5jvP>63WDQ^Yx8nJ{RGC zP|1_)*H}Mtc4`YbGv{hvwnKS)(?f{>G#ajr=G4oK42GCN7^|VAx3slci9P!J`*Grw zU-FoE)YXr64Fm}maGPhlc!K`!{z~DH_F3n+BO7=?|J*{rRRf1m&8!L7_wg)mGlw-@1EV+^sjauo$i|IUZ2B@yB?5 zW(JE7;zn)CLb65pqU@1sD>CW!sZVHTOi^^T$KoyToo^jvP&_3r+bc%OSZpKtzZ3|j z=%0qBmp-55hwyFL5s*YNd681)oWoxs2r z??&(6=A*_drMD}L#e+rdzley56|_8i25OC5CEAylm)9XBS7x4o(o7dV)BJUG)Mt6D zt`A`)CH1k9q7$cx^ZdWHBZe$4CxJk^djBguCFRWAT-T=@ zcRj?P_4U5Y{$mz7dG&gWi06|2(9&e{UCH?D>_@JyuEO1eC0e(irjjChK7J%8C(n@! znk>Vg#H;Z^xjz;K0R^(Jrm|AM)`pTca#wve_8hb1#>V{3t5>fkUAb~ahXsiYUWb9b zn~=yafVNa{y7k13P~6w2Jx_FUVtKq?>5XF34K0+fzX* z6y#0*yTWH(2V9exXP%Nio}ZsDAigmFG5yNtdw)5LqE*E`7IZ04YD`Q_QBhIQhAz3B zRcz~>de3idE{)!l{(J*VIf|Ukk@g9xrDB(Hxl2}62-@xlh#hFg%ia6it8~wQ{QQaa zV0tVrHd!6w-#gDGq7WF7V!o%{Gtb3=mwWQ$Ntb$E(i;3&m#JR)7uJ2fQOd_Rk`50K zb@+LC6Yt)A<&0jazdz9(m+QVvb_En$umja4P2E<(Lbgm_4(i+XMR=|wm?Q*@BL{Wi zb%)E(BZr1`r8n2sw2jl`i=RK|?M_HYC_P$vy(*}vC?P9rY$#-|tkzhG7Znwy9~vDS zV|&<+0}0@?=x>79{rI!`U5vrqn-el%LKjCoJW)l zT22wo!=t8-xTKLL81&a)4aYU3qL!AO{ld7_Yt@)9DmL~nABK;I$K0d{FL`+e1fq7( zkFEr{qk}(%7-`R?wCLz)0FQ=--6Zat_orGeFPu7gl8v3+>dM`_;~N|9)N6FJaLE!< zQswr9FOZ?&LJ}{I-CTlar!T|IYiwOEA)J z-MR%AD=RAtroCS zpm}d7$@vzbUiw4N@N0I1Pp)&((b5vifz=lr?EL-?yiq{El4wQ#18|O0>S6frosV9- zd?#Kw*5d{>*6(kh-d>q(-v8DSZS^4qFfutQi4;*K;KR?Fq^*Kc+`;xZ0ke~@c=p+S z0}4GnJp6@P#I;L{lsy3AIyf~otUeXn)1t!lt^{fJmi*w;G@F7qhv?|&fY3`_y?Pt> z%DRWaQ@&sj#pd~xeusO0t|OW*A&el@E(Fi^>OtR-og~j`)?_4NU1PM~kB zo(~8x;*Pe1j=UmHa#TG$$BaU)jMYUO#m|-FccO(K%ghdFB_OjeR?GNpX((dF|A631 z`qh(JZ`02C&^uem6er`Pa_E!l8ED& z2owSc&WMNzKq1{0pFhO%u5blV>o4o-n!Q#p<~%7WkrEfDr>ED*mZYI@=J@&ZCs=B! zr*y0&C0&1XrKQmW_FcMELdmY2B^P8o^y|luR}Bs6>FJxx<8%*obajiaOYXg63DU+E zP@#YW<;eKa3g>CnN8&-RhFJhv`TY5_m6esVvV%NMJYdhA@>0i56B85hn}&wuPb({a z{ID!bPEI~^SzS$S2*V`ikXA}JXcn>O_Ny0E9UScn^g5V>BWExiMyiCQq@>zfk=wU# zk8o-1C?c*13ok7#S;}l&b58tX)Z%Y26kT$=+>lahxXj@Dw{L92SV2Yqo2kz4VwnpL zK=+oN^V2)`9q2Q>QxFUo#Kgpe0C3%3z1h$^^{O0(F!*3bzil-ogA0N;Mrb4uu*Gi`*?UsK1x>Qg6i1Per41T8D9((?x^tD}ZYeuAQ!4#9X7>YJkN2m_R3yO((etqSV z$a&rO_cx_X+zxn&rXQb7Uh8NSOG0kCxVUs#=(HS9i>f5lV}AA-IJfv607+0levWKr zK0Xr4_6P)mhKA$8QxLbG^t`YJ#spZjPoK`O&Af%y8z@H=P;7kzGc7(RE9>hs zJov~wCJrenDb=|Nnu$npDJefczv%TW3AYw|^Kb2ujcY7d@cxvjh4t1Klv#dbM$pk!@A)w;nurKv<5CkN5fWQxyT!CJ1=s z-rgQ~@tGMJuFuE{{7@_D`}rtY?=_-qW0_|TQ!N3Y=3YE0?1o>SG+t3!`eqP*u8@hA z_NDU-Vf%WGgn@wpvy89q%T|}~;Wlx)7j$l`kv^Q|&&tXI^ZTu=iliQ)BS05(;4@jG zNC4Ucc;EICK}JS){(PJ@#^Gr?F@jQJmhDHCd9^8CUhztdW*m!Ltov=eY_e*xE@zyY z`u?ZS+;E9IJKkFo0}`lP{EU5TTow6q#+w_zmmLTWE21`4!657KOZT*2Ji=*0eM><1X5o|u@TG{`kKhdB`tD8lxDrM%40Ab` zZ>RSu=1=}tPXpTY{~P?QTd8*Ws37Jo5mK&`I$mDez+I{B?Ccsn7CD3Fhk3elnd@kv zdCrrOS-fMDM4R31k$SfN!IuK{Wq24sJ~=hj-X}gREX+~%3LAz)^3qJnC#h%6_(md_ z+}E)$elgP|mPOiSXZY&BJ?>PkzwpnZlp z+a2t^Rwq9X52w1_04X&#HnuX=YI58J@_zq3pe#ug? z9;0C^fcTUxm71CgWa%~NvEBWBtz6k=J;Y4R+A{cS+PIID3(L#RRv&2le}cPLT2Wq3 zyZn%Xk#h{dSV5E93`RasPC#6uM39MN{+A2OVq$_6n+t9?Y_6zqy&NskVrj3ft`MYjg;nxZ&8H^+5PAtok<9D!)NDAbii zA%ZKdjZKK3!{c+sS4-n7tEwo4u4}k)J~{uH4^3=aAQbWoz@-=u)FScE)-#-qt!;X4 zu0YE#?Ow_|+S;a;mX=OV6-~s?<*_k{D*G6OfKj8RogL3FO3orTj)M&!70L+3U0}1$ zp8)rVhp$RX-l@SO9l%1oc<~}IWOYqVFiM#~xmsg}1XZ}i%pq*}UTKX8%@DkDOoQvjkCBu$hVs~CDFCTUO@o^%5p90%<_DqzpLxw$2bp@}@p@!P9Y zS4BjcAm(~aHm`;X+-oYla<3N-5gRok3F1yDD4OvLa)Hu3z%O`n!o$L5Y{9fMXv3ly+Q?pt| znaPT{xs{dJb(nG5P*JzkY^<%rGa#DtK-ARKBxl-r?rSq7gQ+olPqjrH@c<^w`n#Vz z^QA~FoVf4CTtPtr1*2GAlWE(@Vmx?&@1`J@rGRf&7$6`5RbsR(f&=|=5b}fUF;YPm zO7muk=2INkV1H5)b+S-C{RwmGlB6|otMA{xzqPg1*4B2pxX@gnM~xKRKJ?4b(9n^v z?vK=X|CcD};#N4uHEm)Rig~VZJD9rR4qQ%SwW>-45Krnqidhn3Q<9V4uY>*7Zwf~L zf#Lg9SF@jhkr5Ap6ZXD;uM>yQYicr-;Pl^F%Wr9s9c%Uejpasn12R!(I*Ory05lgb z2W?MyIZJ_mAuAg={pNwqo0uejc~pV_+O+(9es>yD8UzkE8ky=wc>7k511yN@Mm!4g z*iE65k-s1dVL~{9$V`i|2E*|CLp9l;|6W)B+bjN$xvG1^kFUk(`LDWiqEjK6@mtB23ndp;U2lrk`*>~rS}>{+txtz+edqJz z2M^k&+d^klq1K-Jv0Sl^Nn=#=<2Py?`YESagjc-8@h|QZgj&fN1Y(nN`8j+&d)5eU zouy?FgsN2*@5T%XTfwNu<*a6|rq5CQCM|{rR16Guj*b%}BN6LhhB8BqKYHZo;Bc$l z5U8vaxJ-m6Al$OEC!mk-+I_hpx%ab&@$_VSyCTFkbabiU;X@}fZNjj1&3Ogn;q%-hE&JuMBg?*+KaC1*tv4Edfm!p+sSZ=USzS#4SO zIizK9yf-ALeaupxB8-T;c2DF9!0p%%TAVV5sl^Jkjg9YHT0-KY*DuS-N&Jp;9E`EE z^$J+*&z{Unn5C)KBgml^78e049PRAx+_}>&tKzOfNLrQCB|t8oH~3s78JM+Jwq)IB zcimBqP`v9t@M>>gFv)>jQ3)8nLY~2aM!|4O(JVWCeT5!l*Gr*7DqzL=yk>s=Bfd z2|N%VFrwU3+=qIP>>M2(?Mf-e1G99Mf;)vVvE&A0v&>K|Z$`&hp})CXPvJ8_I8pnACT!-2qoKU-8Pz|WtOfHbv9&B>8<9IFMD6wT0s zDmSPJPlyL}aJuR(+QPl()ppE-j@ZrYaL-Xu&kJEFLt1Rm;98uMlhbvIMK17bp~`s| znxe8YawEgB+11rJp-e7&8_%6JGuyBzJPfJ6^YZ7DySupgKg}&Jvh#jXCVM#1nrvj89L0U#XBu$G^B$TI zpA6$z8n1VPTZg-A3sh(f{{NGp|J;6oPWCrI0TaSX8W3W$yoM$wWJK%c@7)v?g*Ax8 z)(v}_*-x=!QQ${C3=6BWNa#(ir1-_Gw`mMYz85kKI9UTGq1jgRAx92q{CJshWvj3>~=~4@R!&K0b zjHitE+B67kPvL^^DB`+AJaAyh@jz2gJilFWaCitw(d09{v+|B7y5A23*J79O(9fi#oU(y!n=Wf+Q@;oZ8fXW`LDYXLELU zPpUyfxE7Abo5s;wb`vvj=-zpU!?|M#T3KGYxDl9&X`D|as0JU}r65B^`sv%;R=zge zAlMI=zxVOeGFVf3gT!O;F)%EqajYB`PqC4>;qMdj!+=N9%lmC!X zfyg-~BBY81{y#rnc=ZdU>Ea?IGxG}rEUB3Pjx#7Hm+zgJOPACUX0bUr#*k{Ju~Rb& ziHW7S=-1%oucxJ_&nQ;lJ;z)$j_YvlV0}Uj0bEY za6@s+NFu4*1dw-(3=ETv9?=tFV06d@O!lW=xd(@cR$5BCT7W@7dBsQYv^KLA+2e5k zH5mCX(dU1_83(>L3=h5tRQ^6#>N?=UQFepe4BA|v$+aK)hPRh%3hUw}vl=DvNsRf0j( zP8SRipxer^Og>8^Lb_m!yc}=M3j`XtySr7jiVFC;wW(>}KS|RQ z8d}Jrcz0bA3w^zW&mKiU|%1Xr8?s<+ymT${@ z@yq2QKW}fYpqsoHcP}qGttv0+L)be5YXoiCsq9RPREGnMRfC6t4u5|+!r&er&y#4P zudn~cpOOdB-yk#t%&Xr%Vg3=lkU2z*;3%zcY%~QO$?_N(8TAuY=f`Aem$RKFqo7De zL3j-w7M)8Os4lG>=>*5q-6k~hG@y-iu{?Nz(+WcGUdH!zbeu_`Vqo9coa--y<-$nb zv*5#BljVL}w&Nm`bvsA`sHwOVYY?p#8CSJ@s zWYDz<+D{4z_2J>fS)|sVaxS0bD`?!RS)>|RK>_>8H;J0t00w^C^(6!@$ASLM>(?yE z2iiTD(KE0TDR@!gM4{RY8r1;=zskP-YS~GeVm$EPk$Lbba^-?zyCJoBswn2r+R|do zR3yyYp%Y16JL+CrR;FRx>*DH)J>~QHVSI1u8XQ)^ck{KamU%Hg7^?-!#wTg$tm7-# zUTS2C>l_kdy7rKaI>s*@($@*(LrQ_Xs5{>JAjPb$Vb={$JQc9byilbZput5*g#pmg z@)shwnhfMHzTN+x`2?gCDoRQ(3>#2yJFEphnqJl&8yPWOEmd^5Dk%77=Q!eVcO?TL@nLf~@Uq`Deeuq8A(Zxus z#4<%Dk`=4~K!`h{`z8J#`7{UKzZca4{2Z1YfSYDyf+E{o9R39S;XvbesI!+BY@S-x zvzp-Xo12@!avb?*00JG&&DTMp$4T*Un*qPu!u*_I{c$A;Nep21SK$}skTRjHjE{um zVVta>8m@&DVKxmrsL;@L>4F8NrCpysoo^^^ZaxHmq6iNx8Ne4-KhwZUJq9@GFko_E zu+R;rN2#6#LJC_Hu&iok4KCrxPe_j{vl|;Fe~YlQTY%regKBJOh}@;FdJ6e?bs@wK zg!95kZ$CfK0(yFSkPhYXVL*Ie+PJnp+Sj)>?$j!;^!v&#yGktAKmKsvMaSxz8VYi9 zc=P4O_!#_;Kky`-ot<`0)35+%h6QuXdk?|`RfJid>z#HeLtL{tnU>$xpT1yG}=`MIN6V=b4TWmj?64975wNjMo~LzVX$0;g~92{KmJK% z16xw4_vUr~(g(t*C?Bdez*#E}CTZ`=tV-R;8^@;zIYUUu$=~i{wYKK8+%6APdVe)r zygTOsYfv|_>k>tUq~XZ(LJREV)SwAEIyxe+F(8qw7`y~@4ZwneZdrM`ESM+X-^J;1 ze64rNh2`N0Z+Z#_28OeUs3n+4)gWFS)t7X(T$_W zeIo-@$AKxiM=fFk9iNe&{yRmZ=z~exd#8|9QFJyZ`akoYW77;k@xR#;f>-0?68gHj zN;4Ut$W?JT?Jtn@9%UdExJp|0v3 zql5h?4VTxbpGTAc))llta5(D%8(9}cK{s@V1_4MGsU`wt_T652^l0s>T9LZitNRmR zNQ?j8AIn#G*eU9=zvYO|2Lr3r;6FVD9gRUeO>*ps-@GL(K?ge0z*P8X{`8dMUb)ZT z$Pa++Y&&~<(PNM5GxRuM(F>DSSqPy&b}8dhHB>0~`Z_2_Eg!{e|Fyft%0X>x)Zlu? z3gWH#v>h3K%VRot8?KOnL&S!SjSZ_rXl!f*o@b!1f9j3-TiP#3|FKug)mdpxAy`TUvh1kzu5yS5Ih3NlmSxivJ|X z?BVWyyat&z=nJ{88bT)+#YPU})+PmcX6{iHi!L?lBx#vzGM9uz0|xP-yIb*uY8lik zQvz!Jf-*LkwUCKQ)_+Ia!~|0C$%sI;3MA1n@N|yhBCNqYGN&Y`zA1NxnAlo0AtNKI z1iY~uSUwcV@t)1`fSyjXfK3y2b~Ay_hwBUH(7EIP+pCz_4-&9|omJlE$2RQf;Hn!~ z@i+ox5wptS z3AoM_q@>8!synTLGXH2puoz%Jpf3Rh;YxY)l&B*IICWs~=mCL(j|4!71s+j$b~ZN} zLZHHeg5DgN#hIDkl*e|(*Eet83=E*qRzE+cmp&~kGXx-f@xl?RHmN2JFy9qcF=1rT z-Ly6BSZzI$6%iQ%4nH==Kq(+67c^9=1Gze&+I3acNHxifP-_mwL(KjH~i&GCn&IOa3BFeAc{^Hn1qOxkOJBZegJaY<6I#%^=)ET7tRBL*1K^7 z)lF&$Gdopk0xH$kmV4_lEa5mBw+0$19n0&8&b3>+j6qD}KyKjgS|Xst2L=WVjf~6+ zLFZjk+ksCkxCcns+XMv2oE!oW55t31d@EdA|5D8$INnEF<4)hWYu7UM~+Ts=;Y zLtj5-iD_*;dg(Z>%fTdKqwVf45_^3VMG{HzjH46M&=5RWcd+H&6tFLbs?mzWM_lQ9 zFMmQy6_*yIpEZjoxP|2?-B6d!7_l%M_hGdlqG-|1d2)hFYQ$G(uXG z2{*bku;$(;SV?*F0hYp|_3eSLxst)(c!Gzs1{-)E-XHYoZx`79)m4jFJBgT$&_pza z7&-Ez7vM7=@JkgBYi$SHvtk$MtU>Am6Ao^=U6e<~sqv-{B2)M{#;IqJALzTo^6}~N zxOn7+yr%QyX%L**DJt&)=qo%t7s<=D%z=(&`gN{~EQT03yBHsn7(Uq&_@eQ)n$<@KI<>Bjk-B`b?lo vjg5QjBjaQ9%gfIVI8HW=e)_a}bV|P3P%qNkM5vN@-C*>F!dxkuDKI5s?rn0Rg4ETN>$*Qo2j>PQQ2D z``t6{`NkP{|FPY&V?FD6=A6HnGh9tY9uJ!u8$l4f`wB7-5d?(>UUy)k!n4-v!F%uz z%JYZv(nvus?Fxc0AopeNK63xCk?f`Wef+Y$&%$0vFZ(o^`r|`VG9tUo9uBTgOiziP zGP+?W<-dvVG5ehVO4gQpMLMH}m-`uK9_#C6=|SbA&xyZ|+IP;qf9q%{3r*kd3zd?5 zF8TX;@2TLgA0nxHBEMaVN=k0}-(d(s*L?i=MKA9BR|e!&c&)P4H& z>HGKZ70}d3UX#r0AQv52XqqIbJ3sDyRKt)~$80G_dq|4PsPrnG5Yy-dY49CPk_--X z>30mWjD$_-oY(<`Y-l?n6amXxtE;OI6cterYisM*uV3?hEiHYc#CBAYv(O$R<-YBI zYiani#@yT-0lnm+@=7{-21g5DNUJd`E9-QHQ(%ud8q#4Z5ZG8$T&$?57#9~O$j`rG z6+m!J+|kjIQq1+bLwaCfU}mP7w6wIozJ56?EFgsY$B!RgN1JvwHafMQLdhx#@$uh# zdL%q{7dIx$ZES36Yiqr<^5OPgzQlKk$jx1awe0Qg;^N|_NO+ALEG>&*^XrOu9bQlB znJKjy4ZObw z%K;|Fk=L=YM09i;D=Q*)6E_k6moHVS@r~rwXo4x<5{AnlNJ95UJ(qx>plYgQbT<~V zy*<}#*8SGShwLG#v9`doMFpgx{_noz^9+D=YRa&mIVk)LN6+1SdATO&H-*pK#`R8l{|rBWq*CPqd= zvin!|pA?%PFe<nibad=jjSUVy#KH>i zRdMkW@so8KxmxS7_Y1y1$!bg~>@+W)_ z!@?8{us?`i`Gi}~rdF3-`$MzYnqp>JTdM z@Zk)&?2zHbV5Omr?WmW+(7w5$yOjx1&i!{Efk(?^e5 zF7bG`xOh-jjAyP!wsw909;AX`wv1wj%RE$9pDX0JapMczjD*)=lv|dq1tBK-y?gg= zSEukY%SEZd2OMvoSG~UyKqd1jH|@p#)v zG+EO3>^L`<3u$=6t+niY0$Jm}_O#Ahq!z8(bpsU<_d3M&-9I{N-&-JCSzcC3m6W)7 zlT-!U%G!GO;6O-7=*PeSzo4K_o%bJqKf7ic`{~oS?uA*eh@w%Ll&{`=lHmLEtrY#c z+$7aL+kN(Dd9#O^uNZ6N{L9PTJUy!*Y2!M*&yII86%(#WdcTX0XW`+&7p$nN%FW9& zsBmPweqBjZll&+nMa-=rBm`q~3FmWRAprrw>{pYkvsLRG8!j#`Nl8hnDdP9p;@BT9!8_ zRHe@2-@FOt?&|F9Y-&o^3wZeO;qTt$z5V?~o#aoSn31&HTx>3Dh!?)(9&=cIXGh2P z6p7QbKYMV2va+({$07fEK%OrxE%h%Fo&;4@R50ZA>-T#;XD5s!bE?P2WI+%%CRqW! zE26!ab{rOZdVL8US&9aGVx3fZy`=6hye4|jt|E@y`lT7RBJ^A|6<^b-|5R zpWvLj&Jt)zyAhPb-A`c5dl?`@aW zc&J`KKQ{5ChKGm0c<~}V-PqI9Q&|}=TCN$be_%ia?nq9q?MI$g@`n%al(MR-Jf)?Z z0U_r(tbK?L3i>?QmX#EqDabv1jY-x82z{raOAp%%l- zQVS_@mEok(YB5S$StCk}cHFcaU0q#K*TMaR0~92NUaFw5FtoNVDhe0z4+ua>u{c=$ zadL736&jvd2K}~z9SRAM?S&XA{R+pq{golqwkJ9|ILx~Bz7i?!2dj_0CwcYs^l)$@ zAwr{~q81lT+1ay!FaQKKOVGJ)PEpa(CC9}DlCp9b?@mqF*R)oaw))>`%8+k}dAH7i zAV<&n?@m8zIWS&3|CGGe zoaVK?7z%)CDesylCpCZJX)!JFbh;Y&hjwXmQzi4^=SN(#^7v4o6&1Vp_nj>)ekTfA zm|Ivta+)r7#Hy&MxL-3dF{$eckBs!%UnbIh^1V8kJX-E=LJFm9y>DreA&(St+ngFN zwrKtm4`9b*P#49$x;b5KW@bjgqw9~uje?+{pvcO~#<3|AQ&80VoC-hEi>ZI_KsNYp zd_DVj=Pw;3p#5HI_tM6((L?IA=$Vpij#f9R<2t9RT)1a@jl_tF>-GcXU($}-Yly0<_7z+7X=-X>6JPVT27*E~(-9OJ zYGGjk%Qf>qSnQ0W4C(CZ61{!<`1lw>%zHn0Y)(}I9=Em0nVBuoiMe8aqZ2@tPN@tf z;ZJn2#~*^XmO9`G;6H$JmiNz z;47rRt3X9483^xJz5Mc7s&odML3I+HgLrCUzU-S{n8}6*x0%!lUEBb%o)g9BjnljC zYt0L$dDFEOS8(gnSERlb7k|mmKPkm-8AUHID-rU!_4~0v`2{oEXX*YAcN6C#IbSX; z8aRaOs7yaaMShMXlIhTm=$#?Aq|^91WFGCS?CQ3%c=Gz<*1i|3x_NMo9k`loucrG@FaKgASa$ zNBZwus|WvwasT@Z;de}Y4h{|~D=Qsl>w@1FU}Iwgp@*z|aa~QGp^mdk{Sg!*NM`tJ zJL6r{fbH|6Sus)3UC;c(7jJ2bCPWa1p`_&v?EUUbm6wwn86I|a zs{QccLqbAAS($4gv!&!hkKF>{kAv!tX3ox51yl8-PqhWI%e3O|Mfv%*mlx;K*W)@( zf#`it6qFA$W5Rf+GMNKEc6qW^I9>N8H$Q)>-mku}a4SdslP3iVh2wos&Be|Fy+x~9 zzt}k5R{<3X2^1yN*=ihc8&D}WH#hrF3UOfdQ&UrE>c#%rPoD}43uC9y??g8ksHaN# zNqX+*`1AUS(DnkgK}AD@TstLxa9;M+dx-V09{nueQ_N%_T~?>e*2>QA#*G`%(a|o? zpX1=+C5t>aH!xlc1C(;ak@2S6re9N3QnIzTC$EVIiWDDDIw#vopww@4AGcY7h4{^b zA0s0(WpzcE`dfc7f8(0{Bm-_Jvm792@mZ!dWpMJT1(afvz}9v&2)Ipwe4z6l5m+b3+yHHX%; zE!}dMfiJQXo;cjr?-$Ocd;aTt<+G&+Mn;SvjS>s8G*Y(>_Wek5(oDND|o(YPJd#{gu<>%*@x;S1qSQ|AnHT85`2)i2)gFvRv zZJOT(o-Rsf`Fm-)zkmD8!*BBgt7BmyT~`;-CLFi+f&Tsmz9^M!UfqiA#=xuIyhMC7 zyw|Q>>vx|X8WLn@{|%&on3xzBgIQRZ+%;-pVZj5>IpKy5#-7g8r@NcNO{M||`}<)s z^FVIjymVA0E!g$UrZr zfDM9Ag+m}aJ1B{`teArWQI>mrV4xWT=^I{;zIM~?uw6_WA>9>CW4mHw-^VQKw0@fXHC+G9$fOGz^ zni}yL0k_zVwrCo^^8Sj=W~F@3+(8Jx+gx9#B_n$i8{23qa0N>el9QJ= zrg;vs!uxm|WpgWpQf~WC9+sFwEwa_QkG~s#g$ZBk+|5rc_omAdmF8KWfh2Z*&fkI~ z<(Hzw)_kN6FGF=yKIi2*j1?KJ3}$}&_6>+I;1gs=Xaa2f$>}L%T@=kN9sz-G#kPKz z=WbS3pNos1w?CkxrJb6d&dbeZQ+h{8O&yUvIXOvx+p(deL*Z2cv$tRwXz>JIgTGuq zG_<>`3)_7(j1e_egyhMSCqzU647ZZ-??7*x=q*5 z-SFjFttre7CO}F{OEt1pU<-opF>L&NRtfxjZRAUFaWPHQG9emXs<3ra5Ect@_z|m; zudi>r?FKQFCJ#4yQd(TY_21GK8VLh)I`` zk;%``cb^?=Yi)JW>4$>aY5L58iLb_BzkbOuIRQnkJvAq6 zCb|$bgY5J>S;?-d5=Bvree>r0&+pXMmSbD%m^JUtXq)jVI?}LFD>APB2SHN(5@oO-N*cTKJ@WmWKcR^rvC{57#iUt_2E2^w z;fVhThNPxU@>j>XCdCAv1D$sg$SuWHT+0Y_iVd6uo6!Q1+qW@mwSyRN$z)51OHq;G zs3jXkYA$^r9zT7J%dg?~pRxZEf3lhnATX(^sId5pfYbQ+oP$Hb_%{4Ff{LqFa!fAz zrWQ|?*2SR;6>`VpMSev(2a=Xqchzo~@JV>f=sdyB4ZcScIa$=?h<_F*<7Y0-_&;Ac z_7*y<9-uRg3<+az9q3g#hmV@}&CW`3aO6;gyy<>>Bk-3IF2({d<)R-GBQqt4S!t8mNZaS|4w3@vYC`iS&XF?~3PiXW78S#s;B1 zUHLpaJRD26{B2T_nBRrBiOB*Pw|m zKD5%5but&3e)xt-Wz&j=m7%`~&;;BhHxQZqgy|I(x1sKvH{fxrCW~G{!XhFbsHo_J zRzn*4`U=4e0`vkHqLT0|iHRYwfASoBoL8@20WsFm(V1BVdxlr9YX4^=8aQg8&g$KF zP^HM|>HQAZ$ANHLSy@rumxtU2`MWt&ySB7c3YhvyKIWRZJD-F^a;vedoSgKnrpI}j z;12N$3J&%4Z9!3&zHB2z6?jDYLw6DtN$XN8x&CPEI{srh891Aqo4}lNx9-BdNC@S( zaB_14727*HN{EYNj_Z_^l-!!BZN@`=r^IGI)gB4i3W_G+4&SX?siH2{U?uo=O-|~7 zyZ0c|ezFWtZgA%r;0Jg{P#oCe#>d8%=jYQueq`k2v~qADm==ULL1|A|9aVmxiqx3NF zk?3=IK76H3*-R)^P=s~98VA?Z)WCm&gRg9jU!&5rpQ>;IE2XEW2iVli%*^TG1`Ywi z(e`#uetyP)B^w(X0GFPOv4w>jxQ*=W?9|b6*+cMgkG@_Ih2Ya{Fs(FM$MJ%VBQ7q^ z!LdB{)dUEXtE($eF4FC%L5_{vbECdYVq!XkvM5Le?Iu}a^|l$QjKyZy6UHpck5|1g z!M3WZtaRZwL8vsDPTqVRTth<)Wo+%oN{BS-#a&}kGG{bIz|VdYAHTm;N&ELh9comG z{)C+9p|d@gPrY>>KKZ`cAAhYA3o!(!hMK(gM4_XIc)%@0t&ku)v+j)&t5J)-J!SA6 zT&8<@(J$0k)JOs-3vfUF=0Kn4M*ij1|64iykA~tsWAZ^zj>X@;xx0N6byU_NZacQ8y9j%WKZLqesw!*i7?t<$!K0Xe0 z8u14!5==-JmxDa5!kJnxw}rN78787%F_DpxU|_4Nvd1cf63~Z)*KT*o;JS%!IDEM6 zlwMTS-`QyefjaFOPfbIU^#1)JE581Uxv8m)yu6pEXVb`idHHO;(4uTg8k%M_E2|YS zi+G=W%a~MTfffqrBZ}9FiQq-_fns~8p@D_o1g<(3I`p4-$nEXyuKeXQa^SX=N!6bp z(rms-eE*({o&74Zy|WYk@?~#dU#K6Q=-%HIh3FDU3JMBxabYKr(3XdVg)Mh$&nDe+ z@C92APWA0ua-M|Au`w|6r9Y}wRRqa>nrjDp3w$`lA6S}=rR5!wQnaIS5)u-4ytYwvyDH{2&y<@;jf`eP@d`@L#WuZ^= zt1p!xsl}BiQB7D6+|Q?=14l;Mv>wq39u0Go?2z@Z@ZJNWq^xY$aIs({Yiw-XoxtnB zo}JRxFz2W(?pQemyb|b8WJJWb@pVCq-k&1v(KLT^oFf;6*vO9`E_&ZeONBz4vGDNh zEG-R-;Rwfp)Fqp325Yg+bEgdnN3Tdjq-w zFC5OBn1lq15DEez_clJ>`>!Q{5P0cdD%L~^P(6y!l zi9koTvOS5KgB!OF8b1eu&n9U89TN+y(tRgAAfOSbO@;0z2#${*LL`CL1?Bpb+|G4vi-}f#vi-UG%2@$j0{x-J^E+fXJi1kE?6)83=A0OeZ6Kv=r?(HqORIL#yv1zEP z#wf7x=vIKR6#+_8aEnUHS3F$i1=~9)Ankjqi2|7m%&+3&G@xT?X2y#AgwO)z{?|v% za1}_@)zm!v)dLOoWR=jv1nBJS?CuVNKvv^`EyO_1W-rg_eNVv!Ll9-<9@xMO=-<>< z+q4iGZBKF_4FF?s4-tMh1q2>yY5DE_!rQc(VwPu_!K#CJ>JP5LAyKL`k9QW;)6%*H zY_Ib*E7W%gRn(C>=)@Kk6+yQcIK#x)nC(=Bx~}dSG?v}F@39brc!FI-q`EpfevU?j zh21$)YS}h}i}EC_ZEX?wL;;D1;J!MnRds9=E5F;?; zfrati)6tncJ=*%1DLB7o0vY?^!`beVBGLexI9g~xP<_XT@xLnd#)%1Pq(2dhjTZ_g z0Ulnf6eI_vctgV-0D`HY!~~GgGc(M9G=LvBsg-49(DAQ{ii)NHasg0hW?otKfYRnu zqukPOy6xqY?7{rJa%!eh7v5Z-u0C4oPJk9LbpQKVDg{ZD^x-Vw=Y{R3Fr{G4Pjz$* zs$HYC%xhZO+MrT%YGiG*NkUux_U($YvbPU1RZ=Cv{UO;TX`ge1?ZIe2fh>2seLdj# zWZ4<7uxQy8Zwv6c++h|U348f6#P1la08&y?Flkuf_>7Hr0SlAG+%PaOc(jYs4DM~< z6ciM|u7Q>fq{B3RMRg{OP4DYp-Q6&^{&GCz8@C3uEAHRNqCSwr#ge6>qy+EVIqAz* zpVqky)Snos3riD|KyyaM5Sc=PfaCX+XI~}J=WS5`e>qm5RN>ZKcbCnPVpWg1)MJxD z%W;%&%z$MH$a{HSZr|GNl1ba#UE|sObZZ-%Y?WjnP=9UI%|{k5Q&q)rluv3-??2d=P>=Psm{>Uv}NrSCX@ieHgxz*$B z*y+xl1~>!IUt-Ye;^i%bK)c6`Eht!=lamAOAZQIiN|BS3@9I}r^j(8)(99I&yj0Qn zdLzEk&%eK)nV$7I>*W=M!`lEy1KlRwzp_#!uyJ`g@-Ge<8Sy{=r35+Z;NXBA{A{5O z5AjbiHIR}6?E$#ZsN~K{VDojwUuiGL> zXfv2_{^U3NRcs-gVJKpCKo7c;ozM}#T;AHECnXK?tAUA=_3`3trNnR6Ke#Nn(F0zl z{$tUGHkNz>a}c;EKpG6*OjWx%XlTSSG@@U*VmDPW(AO8!X$qMIK-iED?4hf>8+b!t zqx;!0Kf=Jx-3^lC`*++v3`9XuF-gc~1S*$dJt(b_8WEEiLWr%zN3d%BVTynonq;3PH*z&|Gk;K#xv%saZw7#=MC}{NIiUQ_L=M zVswoP&NgZU)m7fC_x>|DGjpM+j{X9?oRY{nRw=3af&zSpScnGS^Mg_Fg!im*U%!3p zI@fdsY)H8IFHcLkL`0s*$+5Ap{B1RXa|vq*2nhJgYRgKSm?R}HV1s~;fmbn8Vl`Cx z{I{W~LA&Z%F6g?{`J3NH! zEGsJFxPE(|6^$Q43h6ZQ8y0&YQ#JldSz+u5NKG>?LmzIQJ$G&J1A{)Bw@jRzPvAw;M`+E0Jpzt244VXSdL6Dixw(yk zxYm9j7e{h4C=rxW7!h+?XV!}s(vFVXAOJ=S^w#F)jLgkPp74PgICK&Cvzs5ho~6ab zoJXsmVxB#FHdE(=GxSH)cRnL4>viWMoIThrgO)ex=~FW@SWs+8TapDuMLhw>!3vdO zQilrP(}TyG`XIAu1Z#eM{W>%AJqAJ;eu5f-O-~2T#6JRnm4!utqaj@9CJc<<*ZuQ>ePxga`1K^_r3Bw4FJ-;yj-2cx})7^sHE zX|2JD3CCw#wsXd*!b;NatjJmBEsYI;si zM&@%g?Y4akl@@wTKm{(B5)6Q>UPaysTBx*tw4;s=i3wbo8AcFLiZd~w@@wi(!DSpX z1b+t1xjFI|8?;h8r!Sxw=0Gn%vV1?*wcZyd_S8SgZH#^WWTK*PGXSgr-iCh7;EFTS z0HkcE8zklA#KZ)dn77b~)l_0)A~;n>|9ZfdyL-a?%b4HsUY`_~hut@OWH&+tUva_{dTx{CHpvHaYXx48p1&@HB5J)D#G8WcfLTH;N z3L){etjylh@-|py_wJ!3bf3e33G{%xs401YMZi{;mKw-Kkzdz_K1S;M_g&`2NJE!t zP}Fb&e@rF0^Sc}tZdd1|;8Ru355hdL46oAv(TYF$_b>W7I$p)b@(T;YxS^Jzp`nMz zpLhHwOiWBa3#ech!A)dW0XJYCy~g_df{i&Xw&#&)P z^78T?9v;V1y@q_-`ul0kvp6d-*yDG$6Us2k&B*!!jE;i%Nl!h&xHm*k$J=Z=os+IIGC*R0MYTZ;yZ7Qyazji{#IO$JDae`)^QDqN>5rC{mK~j) z%E_W{w(@8e{lky5maU^6K7Q;1WJk~85cet<^rV=WnM1qlHZf%`2YPa(f~ARISTG~) z9m38ARYlgUtW^{FYynI zenAv&T{aMg8DU-i&T)-fR#H;>xkwE{!8I?-t2|i@b*Hq+Kz(DRVYk;mYrwK5`?xMp znxXEAs86$wzW&QT-nVbwEG7H>0cpTXVe&33i*1Yg-OIFFHDL}BFd0e;w?+0xRZsRF t5vGg3%W=sD+Q@{Uq5<4%^WH?7ZBPh5;Fy)NgmsOD|kT!hrzW{%bMe+au literal 8464 zcmZvCcQl;czpoNR35Fp`qPOTFT8KKLL>p0}N7N|MJCUd}M42EuF^EBgMDNjiiRhvw z2%|>t&d&Ru^E>z6b^o!gS+kzKpS}0@)4qe$(NeiV!a#z9gL6Yo6{d@WgUbm1@4k)) z{u;g=Q33<5hpvhu&Zog!YdAP8y=pK8J>TigOkzE#T3T1Y;pX60K)_)COloGMtqJ^( zyorp?j7irSa{85bbO}qOFMEh*Ky*lyd(4f=U*X-HEK#q}RkzGvjbKzI5E3N3EIx2~ zh0SK(d-n%;qn4mMXU+Z%-QAdOOwo4o{7r?G#I;ITijdw1%W8DLEs!z{|qoF5(Y!5{xkghA=aB$Na)H)0P1Vw z?CeZhw|jI{?Q4PAKRBQnqlD*e-KjNYf

tod=v|J3F~}c}e&)rF{ei1WE{QqZ7Ut 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 CE*=2@ diff --git a/galata/test/documentation/workspaces.test.ts b/galata/test/documentation/workspaces.test.ts index 8009315bd3df..9c949610492d 100644 --- a/galata/test/documentation/workspaces.test.ts +++ b/galata/test/documentation/workspaces.test.ts @@ -6,6 +6,7 @@ import * as path from 'path'; import { positionMouseOver } from './utils'; test.use({ + autoGoto: false, viewport: { height: 720, width: 1280 }, mockState: false, tmpPath: 'workspaces-sidebar' @@ -25,6 +26,7 @@ test.describe('Workspaces sidebar', () => { }); test.beforeEach(async ({ page, tmpPath }) => { + await page.goto('?reset'); await page.filebrowser.openDirectory(tmpPath); }); @@ -38,11 +40,7 @@ test.describe('Workspaces sidebar', () => { await page.dblclick( `.jp-DirListing-item span:has-text("${testWorkspace}")` ); - await page - .locator( - `.jp-RunningSessions-item.jp-mod-workspace >> text=${workspaceName}` - ) - .waitFor(); + await page.getByRole('treeitem', { name: workspaceName }).waitFor(); await galata.Mock.mockRunners(page, new Map(), 'sessions'); @@ -61,14 +59,12 @@ test.describe('Workspaces sidebar', () => { }` }); - const workspaceItem = page.locator( - '.jp-RunningSessions-item.jp-mod-workspace >> text=default' - ); + const workspaceItem = page.getByRole('treeitem', { name: 'default' }); // Open menu for the shot await workspaceItem.click({ button: 'right' }); - const renameWorkspace = page.locator( - '.lm-Menu-itemLabel:text("Rename Workspace")' - ); + const renameWorkspace = page.getByRole('menuitem', { + name: 'Rename Workspace' + }); await renameWorkspace.hover(); // Inject mouse await page.evaluate( diff --git a/galata/test/documentation/workspaces.test.ts-snapshots/workspaces-sidebar-documentation-linux.png b/galata/test/documentation/workspaces.test.ts-snapshots/workspaces-sidebar-documentation-linux.png index 9f33168213b5bea07ea8af87122118bda01d932a..093e01673858935d7b8e086a99bbece10eb403ee 100644 GIT binary patch literal 34444 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�E&q6@NAJ2 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 OW`yS$k0WkD@&6CWrEEq3 literal 26192 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 diff --git a/galata/test/galata/fixture.spec.ts b/galata/test/galata/fixture.spec.ts index 30fb065c4f43..5cb3d622a88c 100644 --- a/galata/test/galata/fixture.spec.ts +++ b/galata/test/galata/fixture.spec.ts @@ -105,6 +105,41 @@ test.describe('mockState', () => { }); }); +test.describe('kernels', () => { + test('should return the active kernels', async ({ page, kernels }) => { + await page.notebook.createNew(); + await page.locator('text= | Idle').waitFor(); + + await page + .getByRole('tab', { name: 'Running Terminals and Kernels' }) + .click(); + + await Promise.all([ + page.waitForResponse( + async response => + response.url().includes('api/kernels') && + response.request().method() === 'GET' && + ((await response.json()) as any[]).length === 1 + ), + page.getByRole('button', { name: 'Refresh List' }).click() + ]); + + expect.soft(kernels.size).toEqual(1); + + await page.menu.clickMenuItem('File>New>Console'); + await page.locator('.jp-Dialog').waitFor(); + await page.click('.jp-Dialog .jp-mod-accept'); + await page.locator('text= | Idle').waitFor(); + + await page.getByRole('button', { name: 'Refresh List' }).click(); + expect(kernels.size).toEqual(2); + }); + + test('should have no kernels at first', ({ kernels }) => { + expect(kernels.size).toEqual(0); + }); +}); + test.describe('sessions', () => { test('should return the active sessions', async ({ page, sessions }) => { await page.notebook.createNew(); diff --git a/galata/test/jupyterlab/debugger.test.ts b/galata/test/jupyterlab/debugger.test.ts index b8f39c773210..4ff3fe41d51c 100644 --- a/galata/test/jupyterlab/debugger.test.ts +++ b/galata/test/jupyterlab/debugger.test.ts @@ -95,22 +95,22 @@ test.describe('Debugger Tests', () => { await page.debugger.waitForVariables(); const variablesPanel = await page.debugger.getVariablesPanelLocator(); - expect(await variablesPanel.screenshot()).toMatchSnapshot( - 'image-debug-session-global-variables.png' - ); + expect + .soft(await variablesPanel.screenshot()) + .toMatchSnapshot('image-debug-session-global-variables.png'); await page.debugger.renderVariable(globalVar); let richVariableTab = await page.activity.getPanelLocator( `${globalVar} - ${notebookName}` ); - expect(await richVariableTab?.screenshot()).toMatchSnapshot( - 'image-debug-session-global-rich-variable.png' - ); + expect + .soft(await richVariableTab?.screenshot()) + .toMatchSnapshot('image-debug-session-global-rich-variable.png'); await page.activity.closePanel(`${globalVar} - ${notebookName}`); - await page.locator('jp-button[title="Continue (F9)"]').click(); - await expect(variablesPanel).not.toContain('ul'); + await page.getByRole('button', { name: 'Continue (F9)' }).click(); + await expect.soft(variablesPanel.getByRole('tree')).toHaveCount(1); await page.debugger.waitForVariables(); await page.debugger.renderVariable(localVar); @@ -130,13 +130,14 @@ test.describe('Debugger Tests', () => { }); const menu = await page.menu.getOpenMenuLocator(); - await menu?.locator('[data-command="fileeditor:create-console"]')?.click(); + await menu + ?.getByRole('menuitem', { name: 'Create Console for Editor' }) + .click(); - await page.locator('.jp-Dialog-body').waitFor(); - const select = page.locator('.jp-Dialog-body >> select'); - const option = select.locator('option:has-text("ipykernel")'); - await select.selectOption(await option.textContent()); - await page.click('div.jp-Dialog-content >> button:has-text("Select")'); + await page.getByRole('dialog').waitFor(); + const select = page.getByRole('dialog').getByRole('combobox'); + await select.selectOption('Python 3 (ipykernel)'); + await page.getByRole('button', { name: 'Select Kernel' }).click(); await page.getByText('Python 3 (ipykernel) | Idle').waitFor(); @@ -177,9 +178,23 @@ test.describe('Debugger Tests', () => { test.describe('Debugger Variables', () => { test.use({ autoGoto: false }); - const copyToGlobalsRequest = new PromiseDelegate(); + async function init({ page, tmpPath }) { + // Initialize the debugger. + await page.goto(`tree/${tmpPath}`); + await createNotebook(page); + + await page.debugger.switchOn(); + await page.waitForCondition(() => page.debugger.isOpen()); + + await setBreakpoint(page); + } + + test('Copy to globals should work only for local variables', async ({ + page, + tmpPath + }) => { + const copyToGlobalsRequest = new PromiseDelegate(); - test.beforeEach(async ({ page, tmpPath }) => { // Listener to the websocket, to catch the 'copyToGlobals' request. page.on('websocket', ws => { ws.on('framesent', event => { @@ -193,19 +208,8 @@ test.describe('Debugger Variables', () => { }); }); - // Initialize the debugger. - await page.goto(`tree/${tmpPath}`); - await createNotebook(page); + await init({ page, tmpPath }); - await page.debugger.switchOn(); - await page.waitForCondition(() => page.debugger.isOpen()); - - await setBreakpoint(page); - }); - - test('Copy to globals should work only for local variables', async ({ - page - }) => { // Kernel supports copyToGlobals. await page.evaluate(async () => { const debuggerService = await window.galata.getPlugin( @@ -221,38 +225,36 @@ test.describe('Debugger Variables', () => { await page.debugger.waitForCallStack(); // Expect the copy entry to be in the menu. - await page.locator('select[aria-label="Scope"]').selectOption('Locals'); - await page.click('.jp-DebuggerVariables-body li span:text("local_var")', { + await page.getByLabel('Scope').selectOption('Locals'); + await page.getByRole('treeitem', { name: 'local_var:' }).click({ button: 'right' }); - await expect( - page.locator('.lm-Menu-content li div:text("Copy Variable to Globals")') - ).toHaveCount(1); - - await expect( - page.locator('.lm-Menu-content li div:text("Copy Variable to Globals")') - ).toBeVisible(); // Request the copy of the local variable to globals scope. - await page.click( - '.lm-Menu-content li[data-command="debugger:copy-to-globals"]' - ); + await page + .getByRole('menuitem', { name: 'Copy Variable to Globals' }) + .click(); // Wait for the request to be sent. await copyToGlobalsRequest.promise; // Expect the context menu for global variables to not have the 'copy' entry. - await page.locator('select[aria-label="Scope"]').selectOption('Globals'); - await page.click(`.jp-DebuggerVariables-body li span:text("global_var")`, { + await page.getByLabel('Scope').selectOption('Globals'); + await page.getByRole('treeitem', { name: 'global_var:' }).click({ button: 'right' }); - await expect(page.locator('.lm-Menu-content')).toBeVisible(); + await expect.soft(page.getByRole('menu')).toBeVisible(); await expect( - page.locator('.lm-Menu-content li div:text("Copy Variable to Globals")') + page.getByRole('menuitem', { name: 'Copy Variable to Globals' }) ).toHaveCount(0); }); - test('Copy to globals not available from kernel', async ({ page }) => { + test('Copy to globals not available from kernel', async ({ + page, + tmpPath + }) => { + await init({ page, tmpPath }); + // Kernel doesn't support copyToGlobals. await page.evaluate(async () => { const debuggerService = await window.galata.getPlugin( @@ -267,24 +269,26 @@ test.describe('Debugger Variables', () => { // Wait to be stopped on the breakpoint and the local variables to be displayed. await page.debugger.waitForCallStack(); - await page.locator('select[aria-label="Scope"]').selectOption('Locals'); + await page.getByLabel('Scope').selectOption('Locals'); // Expect the menu entry not to be visible. - await page.click('.jp-DebuggerVariables-body li span:text("local_var")', { + await page.getByRole('treeitem', { name: 'local_var:' }).click({ button: 'right' }); - await expect( - page.locator('.lm-Menu-content li div:text("Copy Variable to Globals")') - ).not.toBeVisible(); + await expect + .soft(page.getByRole('menuitem', { name: 'Copy Variable to Globals' })) + .not.toBeVisible(); // Close the contextual menu await page.keyboard.press('Escape'); await expect( - page.locator('li.lm-Menu-item[data-command="debugger:copy-to-clipboard"]') + page.getByRole('menuitem', { name: 'Copy to Clipboard' }) ).toHaveCount(0); }); - test('Copy to clipboard', async ({ page }) => { + test('Copy to clipboard', async ({ page, tmpPath }) => { + await init({ page, tmpPath }); + // Don't wait as it will be blocked. void page.notebook.runCell(1); @@ -292,26 +296,26 @@ test.describe('Debugger Variables', () => { await page.debugger.waitForCallStack(); // Copy value to clipboard - await page.locator('select[aria-label="Scope"]').selectOption('Locals'); - await page.click('.jp-DebuggerVariables-body li span:text("local_var")', { + await page.getByLabel('Scope').selectOption('Locals'); + await page.getByRole('treeitem', { name: 'local_var:' }).click({ button: 'right' }); - await page.locator('.lm-Menu-itemLabel:text("Copy to Clipboard")').click(); + await page.getByRole('menuitem', { name: 'Copy to Clipboard' }).click(); expect(await page.evaluate(() => navigator.clipboard.readText())).toBe('3'); // Copy to clipboard disabled for variables with empty value - await page.locator('select[aria-label="Scope"]').selectOption('Globals'); + await page.getByLabel('Scope').selectOption('Globals'); await page - .locator('.jp-DebuggerVariables-body :text("special variables")') + .getByRole('treeitem', { name: 'special variables:' }) .click({ button: 'right' }); await expect( - page.locator('li.lm-Menu-item[data-command="debugger:copy-to-clipboard"]') - ).toHaveAttribute('aria-disabled', 'true'); + page.getByRole('menuitem', { name: 'Copy to Clipboard' }) + ).toBeDisabled(); // Close the contextual menu await page.keyboard.press('Escape'); await expect( - page.locator('li.lm-Menu-item[data-command="debugger:copy-to-clipboard"]') + page.getByRole('menuitem', { name: 'Copy to Clipboard' }) ).toHaveCount(0); }); }); diff --git a/galata/test/jupyterlab/debugger.test.ts-snapshots/image-debug-session-global-variables-jupyterlab-linux.png b/galata/test/jupyterlab/debugger.test.ts-snapshots/image-debug-session-global-variables-jupyterlab-linux.png index f1eb2b76376023b6a2252871690f1d98ed54196a..b9020c82f6509796322477d6a8a6f419d6bd489f 100644 GIT binary patch literal 4318 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 literal 6597 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 diff --git a/galata/test/jupyterlab/debugger.test.ts-snapshots/start-debug-session-script-variables-jupyterlab-linux.png b/galata/test/jupyterlab/debugger.test.ts-snapshots/start-debug-session-script-variables-jupyterlab-linux.png index f2f45a4bf292eaeddd827712c0b667fab67691f3..f0bf07b8bffe5d0733e3158bce18ec66fc97d8b0 100644 GIT binary patch literal 2735 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 literal 4129 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 literal 4129 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 literal 12971 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 L*N{WXJPG(;J6N+~ diff --git a/galata/test/jupyterlab/toc-running.test.ts b/galata/test/jupyterlab/toc-running.test.ts index dc765140cd9d..252db576b1cd 100644 --- a/galata/test/jupyterlab/toc-running.test.ts +++ b/galata/test/jupyterlab/toc-running.test.ts @@ -16,9 +16,7 @@ test.describe('ToC Running indicator', () => { await page.sidebar.openTab('table-of-contents'); // Wait until the last heading has loaded into the ToC await page - .locator( - '.jp-TableOfContents-content[data-document-type="notebook"] >> text=Title 1.3' - ) + .getByRole('treeitem', { name: 'Title 1.3', exact: true }) .waitFor(); }); @@ -71,13 +69,16 @@ test.describe('ToC Running indicator', () => { await page.notebook.run(); // Collapse ToC - await page.click( - '[aria-label="Table of Contents section"] >> button:left-of(:text("Title 1"))' - ); + await page + .getByRole('treeitem', { name: 'Title 1', exact: true }) + .locator('.expand-collapse-button') + .click(); const executed = page.notebook.runCell(5); - await tocPanel.locator('[data-running="1"]').waitFor(); + await expect( + tocPanel.getByTitle('Title 1', { exact: true }) + ).toHaveAttribute('data-running', '1'); expect(await tocPanel.screenshot()).toMatchSnapshot( 'toc-running-indicator-top-level.png' ); diff --git a/galata/test/jupyterlab/toc-running.test.ts-snapshots/toc-running-indicator-error-jupyterlab-linux.png b/galata/test/jupyterlab/toc-running.test.ts-snapshots/toc-running-indicator-error-jupyterlab-linux.png index 0ff6ed3eabf215372706c9d370a4cdc0006ff29c..30e101e1977d6fb622d00a35ef1855f473de2b68 100644 GIT binary patch literal 6572 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 VdU9wf_(z8crfqb&Qq$?~zW|3{fbReR diff --git a/galata/test/jupyterlab/toc-running.test.ts-snapshots/toc-running-indicator-top-level-jupyterlab-linux.png b/galata/test/jupyterlab/toc-running.test.ts-snapshots/toc-running-indicator-top-level-jupyterlab-linux.png index f51e3a36dbafc27b5101853ed901549c0e16bb81..27956ca3605558623eedc9ab2ffe8be811fcd363 100644 GIT binary patch literal 5264 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 Ta5w_~Vw7;ObG9wEx%uF~JAX>t literal 5689 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 JVsQPB{|0n04z>UQ literal 7227 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 diff --git a/galata/test/jupyterlab/toc.test.ts b/galata/test/jupyterlab/toc.test.ts index 1d17094ab8b2..0f982633ee63 100644 --- a/galata/test/jupyterlab/toc.test.ts +++ b/galata/test/jupyterlab/toc.test.ts @@ -23,7 +23,9 @@ test.describe('Table of Contents', () => { await page.sidebar.openTab('table-of-contents'); - await page.click('.jp-toc-numberingButton'); + await page + .getByRole('button', { name: 'Show heading number in the' }) + .click(); }); test.afterEach(async ({ page }) => { @@ -50,13 +52,11 @@ test.describe('Table of Contents', () => { const tocPanel = page.sidebar.getContentPanelLocator( (await page.sidebar.getTabPosition('table-of-contents')) ?? undefined ); - const numberingButton = tocPanel.locator( - 'jp-button[data-command="toc:display-numbering"]' - ); - await expect(numberingButton).toHaveCount(1); const imageName = 'toggle-numbered-list.png'; - await numberingButton.click(); + await page + .getByRole('button', { name: 'Show heading number in the' }) + .click(); expect(await tocPanel.screenshot()).toMatchSnapshot(imageName); }); @@ -68,26 +68,17 @@ test.describe('Table of Contents', () => { (await page.sidebar.getTabPosition('table-of-contents')) ?? undefined ); - await Promise.all([ - page.locator( - '.jp-TableOfContents-tree >> .jp-tocItem-active >> text="2. Multiple output types"' - ), - page - .locator('.jp-TableOfContents-tree >> text="2. Multiple output types"') - .click({ - button: 'right' - }) - ]); + await page.getByRole('treeitem', { name: 'Multiple output types' }).click({ + button: 'right' + }); const menu = await page.menu.getOpenMenuLocator(); await menu - ?.locator('text=Select and Run Cell(s) for this Heading') - ?.click(); + ?.getByRole('menuitem', { name: 'Select and Run Cell(s) for' }) + .click(); - await page - .locator('.jp-TableOfContents-tree >> text="2. HTML title"') - .waitFor(); + await page.getByRole('treeitem', { name: 'HTML title' }).waitFor(); expect(await tocPanel.screenshot()).toMatchSnapshot( 'notebook-output-headings.png' diff --git a/galata/test/jupyterlab/toc.test.ts-snapshots/notebook-output-headings-jupyterlab-linux.png b/galata/test/jupyterlab/toc.test.ts-snapshots/notebook-output-headings-jupyterlab-linux.png index 5482f90d510c2ce51d6b6596c5c48d4187ccf41d..61c32240d9a228ba108f092432dc8ab57f0780cd 100644 GIT binary patch literal 20147 zcmeIac|4YD-!H6{N+pt_LXn!%21}v zm&~*Gd#$za=ULBw*7Lr5zx%)ad3@G=*IKx)^E}Sq@%w$J;|fw!k>9iH@GcS(l06FN zWz_NK3JJ*{wPb(bZ(V5~L-=FM4Rv{GlAK2RQ4$g+5(OD4O}F^T9#4b&%bSuLR+ge7 zEcYmGzrL-&#c;QgqJiZAgWBt-BTUz2^*XLZMM&#fKhnB1_~424<7&~jRFk5?*1uY$ z*cqP14ljNjUo0x0O^kUqdecpu;5%V6ELu8T%oCQA6Eo>S9#B8DkK~6`{|!45k|c_1 zhRdY=6es_1*m3Yy;nw?SySKua2qliMD<`lHgHRq64Cm{V83JW+6Q zaiQfk8Z=z238pPCFZb~92xn6^IeD;RbE71XR+?E}RyHO5@#Dv_v9a^>^CO&b4Wak$ zoe~ge|MKM&KR@}-ozGvqkjX18E8A9JU;p?7snkSINtA2<((i#~BNYt|4SoIZA3m^& zizm36HYSQ&nVO!y{)L5sfq{}T%y)A=$~7mjtg*4Nqpi*0)#WWxdm9=WY;A4vW|Hf3 z;mw9drEa;;o(&uOuGg$;YG};H*_HDN2=u(MqP<&nl+5H;V*-9uLPEkKH<*^!($caq zRv_!mn>Y0XY#u_n(g&^`Wn@h1=;#o#>oq9%a-ZnTz45D&mCU5O(1BEHaCo@5sL0vL zsj#rHw!S_|)cH6EM@C9YWkW*B@3JO7X#T6Bs^W$IHRpLiRMxx{5Jg2&gRu>8B>FJd8!p$8WE?D6cCr(tXFT_Pe zwB0+vMdsJs-p=~9y|wkUpdcHWw7U8uyG{l%7fmfKS$TP^$l~zuu>TH9HnRTalyg*6 zR8@EO=)bkr)zZ>(be!q)-Ass&KjS_#$g>#R*4;fZG!&VTF!}RmuKTRH1BJkA`=9SG zrpYCUI*)xd_LcpFDTKSy(h%@b~hWnwaqO^SexSbIuLnFQ4!jBz+~^XUy=%G{H4Pj;LBZA$)79 zuOjU6{rmUZnwu{bIX)Hk^d|I*mG{uzeq7`*aOX!W*2wVOxvGyJcQkye zt7~a%;};a9AScJ~brw5k34c_swl&Ep_&TMUc;+bC`_G@r#S{2Uw?`^wXJ#Jfp+4t5s~stw@*vD}Q(kyuV?$kC-E(p3z`Ar#YI=HsBc3>yj;M&p?*>uF!SmME z6B!rNLXU{A3^&lFykvDsm*Ksc6Fb#grmwBt(UZMr=guo94}N`V{I#uZZgzGcLBeT7 z&5y}v?f1tmTenYVv-TGTbt=D@6P)_??Hj4o142G(yy~ZYL_|ch$mn;w3Ryx{?U25n zUNODK#fvRfRm`lcPct*`5ds`<+>rEIy4mkM-f_Z@>Dh&tV~s9{4<01lLHsHyE}m&f zZ5_q#q@kfvR#vu<{}9R`<~IFQFb!fSaZkczo>bn6ZZ83#rI%ZTVdpYr(^1)0Z4NlClQJcZcU zp5X})?ax4Zn&3Jp3j;3Y$4r62EzV2>=`1O8fw{DpUwmTkluHxcl)a)wN)zwd)K6Ma| z|2^>0)6+AYcAWq4WOvaGK0ZDX5fRs^?n5GugI}I1)f{q}{!xhz`S9VxQflAz`LAW3 zi_e}ut*NQuXlrTBqe^y_ zDeb%IBYnP`bN@Ybs7H?;VJJl>T})Jh|o5Y>78U1W#^=&rSZ#pdU|qla-VOZ zGO9~wwnU#-P;j3gi)_~2zYAr4V`=(ll3O@a@()w07IO_fJ&(~ZPgP4qZeJ22^pv=& z>gwuZ42D}%E_u8#EP0!!i!FeendEYVEVp06w!83S7^9V?CHjrFrY0HBUMea+v)Tt? zdG0^zXEBp8r5cBE1;r&LzTZx)_!ftjL`3Yj%+bp=+2*12NnT27%f`Mf53s}2o<6;5 zXU8i%4qSj%<>czRX>e;)bSfkyBqLO6sXD&$odaLO1DnqP|~^ zt;_1SdcfFNu z#zam_>p(~tk2yU(y_2(Z$wW5oxXCcK6LuFj2glwO?E?~Nq@}e5De|H8KjR|9!&~DX z4h;^vl>{%BKfd-kn$Iw_8E@m{lw(*Tw^zo%fPT5%xb%nr`FBdyF>$UPA9>EvWR4eZ zqWzDA(PK+?b)B;3+gcp3_Tu>Y$^hmXV!}QRC}rFBINYnhpuV_jvL z-o@@DbF3r89rIm`f@{Qrz9j*mCpbfdJ`;*i4Ter8+q|y^CtU`SQrh>%&XkfTsW2l>fq| z#CHi4``hkkH!AlU9T_>F-insmv)babGMfJC)vNN(oE%vh8SCECBK@paUDoKFluDp^G_Z<}Uc!NS$f|0$wz3bP>&85(tk%~R9u57hD8Fug9w?YR~yX~sV z%2!VwEG{nIP0Qo8w&Y-JP53y^*>9w$r2`XH@aS5 zMYo{kF{u6YN$<6p!lg@>FpA~BmExV}t$U0%SUK-jEmzyHqF{5=g$@5+p!CQt!25JTUz)$7bXB%VqE(J zcGF_P0aJ<$Y|o#s?Je`H(nqS4^}%pVjP`m_z=RZcEcg`;JHP7``qj5IT7>TGH3Y+?*};ATT0E z0X@C7ogE_;RppRlQ=+)owMKeo<}?h+&FLyiz)W^Z&9i53K7al^AfRSp@_Wng=UG{4 zEf&Nf;piAEV5NQaDl37jx5TxnrKP2_Gg>8`SNAoka(;e(sple(hk=oiN?Hr;m-<+iv8bxDouf3rPEq=?cU96SZro(ZGHLjP4hQz-}V+e*MIr4FB^AN zX!x|R6e?CMqLqA37n z3;u8QQM|I;vn%sfheIAmMST>@Eh}3G&Jp)qu)gN-%drSpDM`TUaWfwp?TFJ#%DKCk zK(n*6L~MYcOVI_V!m8~v7{YMqXm2m`UUdPE1==dW+BQjUCO<%lKaiyB>grlqS-~@> zr(i#ELRnsZM@`xD=hufn$E+?)TG`s>Jb(UsW(GIOJWy`go{51|Nh=^Eq^h9s)3FHq zaZvR|U?Ez=Uq}EW4Co3N;I7@-a#QIK3H3u*Gh0mZ_!_#!ckj+hN>*U60&w9@F!@s@ zseYlwGcq!&N`Tr8iJhB2CtegywbCPM`r-cQYonLXp0NoFcUD!IzQ4Wm7>(!VhPc#T zub~r@qjCQe$jO;;Vq?Vc*89Dg{RaN#Ki!(F(^mJKI zoLI-Mq6wCLsy;tASKQ5u?uhl=xpOC8&C_!gd(!Dw2H8iGTy)~MU_$6qoSe_!y?X~l zx3=b0UL)bP^zQpjA-CzvDSa+2FXsmJh34kx*Voqph;$r3Me~_rHsfw&Uufy-7I`f@ ziYD|9iM_v4b%%=d;>C+8sj1Q`gZ9Ee<+$rtmtKHlJ!}v`b#l{W)oa}k38_m@lMnM* zo?-PkV^U4#xKiRuKtFJ&Jx7V{n3b7{hSkyv7PKqiOIzFRM3)Yka^KAja7uakk4Mkl z5f%|Sq5t;6oZO6${LR?d!$kpQ7tvbw-p0lgkyTO2$;`y-1iR)+`EUO{T#}L^rL3I2 z_;Tao{Irre?j(xW_y{9oSg70i^MNCTYEDkh-wO-q+#BE?CG-Yp6_|B~2Om&xE)9g? zGUj%hy}P-kG@%NpX5?02<7u>(xtD?aX=!ISxSd@O^uFf=b~pvv8W*7M zInl}2!cKeQL^d{D>PI{{UZc{H&8K?en`U=Z(q9@BeQ9ju;pf+M>e#(&*JB>TPiCj^ zSh}nQ;~KD0EjoTy-ObC(TYe1IN+)D{2E7hE>JqoMp+1L)H+EYC?(N*`i#eq@+-Ae%p4-5R(1Tq_|+MXDZ8|J2_19;EFbaX8Oiy?GEG8HCxHDD-jZ}9-> zi<+8G)Sr(ip>G`4D<~@yKYH|*Yb1C)Z35ZM%nXlFDaVqx>#@+f>7P}>_wLpD?tX;T zjErm_Zis8)eTVIjZnN8G`_RP18YnyPxiR#D-@kub3x5ChO>d6E$E9p#7oWJexI+$a zcz8J1@#Fmi11)x2{h0jx{F(`$1_uWh7F>F*wpYJ@-;XyzbH8xm0L>81%_2x>|_8mL!Vyo%u>CO1` z<-d6|Ph1D+43tOC2y<{)e7Jwe%XEf;dgjCqsl6!buQ`UN1q3EXMhe|$*$8?+p?>7% zVkWh>w*&NS-@e^%^V~UOV_$S5TysW7M)b)m?<@UxtZo+Qy=(9!VV;&JC1L(g$m2f> zX8-tYUnfQhuj%>u1PSlrxHx@+Jaz_X0NV6uu=2RHw>KDuOO&gKOK@76DJrBud$g)N zedCBLA6Lwm*48L)U6ad~-+5LfS>PE12Ln=Qq^qE#_Z2!Y7c(pH)6zyw^=`yJdW7-j zh&2Zkb+VGR{;eg2!s9u4@|CLG6v2Tu?~#I(6l5x!hFAd;itoL>Q{&^Fli%Lhe1F@6 zg+~<#2nawB%X#r)VqBaFtwVsHpM{mx^OY^ZGpgM0lB@ ziL0OXJA6=3P-tmyKf%StoQ@~akRaxYWi;R^c=hUmTpGGXiY}lwQK}nrCi3Fv&pG`o z$#(7Pr_0OEw&^SP&b!w1taTK><2gTeAgaFS_0?c7&yZy48se@&I+~b>4-fahbAa3DSY$-Ri%YqFD(S7G zPH6Y&=$gA_wS^%wVTuIYy&JCYxG&~{8FLX z@t}T)=hCYm?`~}!(aB9qOS>EydHKM8yDcib^J7Nss@#~4DJfS#Wy%=GusKmj*rHK0&_FFO?Kt|0we$-1xtKsTruVNt~Fit*CB% zeMa8Ci#j@e#m-jPt3-|15dehe<9-d_is++3x^*lY7JkaSpFVvO&#^g1*8e_WHxvcn ztH{TXjfxyuS5o%nmX17Qf9?9buy6_87qmGlJX}Ll6M_ay3bvDGx<71{XqFoAdbzdMBv-AuMPr7w(7^Wk^-VQfwzf8qJP}hwZJp7U z3ZWNKk5?sI`9!;S@zJAwuCA^(Zpyp!lqY@J3klNq8 zIUukrHYO&hQvf#uxfn##qD~wj zr4JtLbs)J|)Qr|BOy3xD`Wp1+YmM=B1rLv9Cf^GVPD@R#W!!+AC+RUqCJr&y67u{= z4}oB(RrA6O`?{;xnM;pEK)eS#1+&tww^ZT6h5c(cA1OY?TZ|Az-~ktRcXw*)aOhM{ z&!ApmJYBhR1+<4j)F~q%VB4}SAhXr%a0A{rrNv^T?flH|-#_hz(K1)@ke(=nQ!t2D ze?NHq{Mxg05J8)+*EL;Tx=>jf<3&KeWm|iCdH~LZY`ZUMYqN22DW$bYpF1bZ*aYQA zUQVv#>(~0aI+T-#yE_#rAEXjISzhCE0|kZagS8J!Bcn*AK0~l0D$9Kpo5Vrh#9%Gx ziQaA3S04G`ftrR!a8Qs`q+~C^KlOZ9z~{*`3}!d-iO4db%s`nrf0nPhVfs;)kEm#PAyD&YfdtXP-%| zMF&95HQ_y1=0=T-jPS~->9eA4)5#$r$|xR63bB!`;u$8p$jRsS6Q6js9%R|n7K@>w zp$yl1m6wxOZ@e@tF}JV?dQsqVmNt-6ds`c3?E9}@bw+N25JPbVM99w0#w|KHIf46R5I%kWJb~MX zPJqz`M@FW{5D(k*R1E3{iahX)!0FR4cJ}g#pE={z`b-%N6__2`nymlLrd0N8u1>u} zr_Dbf6iwh6CQF##qM)Qy;l28}#^mC2O{cqWgyljG4~>l-K6I!~EEjVGGg5MG+P}24 z6x|Hohiy+W>!mGq|HSg7XR5jLNiy3w~S z&Pq(+wqTBc{0FW%zoz8i;h|8zZfPk!seu*}794!T$%+1ySzvfLbr;jurw6#SPsUv6 zl{iil%*x5BVAPxi6(b0x_sftfG9%e?tIWU1nUcj8wQKVVsaBCkB)mGCo9(B%MffPG zmd<-D`CJ4VU7i`rAUDMhJbLtKhOHER1|^5Eup9QYS039x(kTZ;m%*VSkfFtiE`N`Q zYIIb0tFGi;%E%(a8-Fa_iWx>l>HvOKxw5134<_i@uO)Uyia(fFNKlp^$AqxDe%;-} z1AU2Xo#|Fn>Mur_FQapChQ4)m0m z^UBJ~(y~R&?p`2TAQ;a5pP*PlLvMB}-%pe?R2DS|0C|ZD$kO*`0N> z_SC3x5p_VfscxIXifeTQ7eE%C*tVgS3BT0St50)zn^DwjalA zxZe5~O1Z?sNTBE7}9mm5{u=fgVzArp{OT8BM zC)9@p3`y=74KM@x#|Y0Q36vvtE^E@MgZDpwz5tRI6H|BjBsk^?Zf;{(x-DC_;N~;-Z1JL5UpKjfJOMR5{lw3od{^F+QUzb+hybF+0<*HP zbbkNd6fZK1xn@YgbMz<`Jv}!hjMUWr@$op2GxqP@x}N)&49f54d0xFb1OPqih>3zkLRxiHWF&aRPV=%n7j{TWU2~1! z(%$|0(#LBK2K@h`qCj)<21&vU1AL@Ad{`w(!cbdV(0NSLkI8~x&&5Sh(F=(D+_|kq z(B(cRihBZ&0yWdp(q4lZRLGj}My#%`ZV$ciG~g9=JZrwVqJ1tzyt(1%s-Mv1U$^a? zE86gJK}qIhWCVtV$#3%}l_K4?Ek*I;UrGh`ZSN593kDT*RAb1zPu0OrG3V9pK7`N; z9Sw#IFz(#k90r1HjsQvuiwv-uUr=!RAbE;$AX943bx>c)jU`j4VkIRdQBkxah8CU? zKWfRh1H}0;1;Q2v$$|XhhMnN;Fij%)e*{P7S_{QQMd6z|TSY?L*4NeDnQ(xCp$yKU z#5exwZL2a4z>IiCllj+M%|A!yI*qDVmOSwIfwCL?s!vVIXWK12!hZ^~kK0Hm?Cw%#8vfgwBN<72c5`489gOf@OgHYe}ZtFx_; zpdgk*n99&RF17di_3P*g(W4h(H-HHU}VeeaW4J-3bs9@NKHba_v!+gPD7l~ zH7KMqGK0T<5xVl&@m|Y@$|LErIi)HQg@<{Y~buX588bvAOJWnnG=?f9HopV6J!-n z4-ZjcVHsK3H~IN+O9e$mJ%Ce>2@ZgwLjIBtd#*VKngl}84Zi?=2Lj6aOg(S^#O@Jx z568)=sVN>|2RMCBqJ|?g5YB;jplh_lzQCH6I}Ry2?2`Gb$8mFV7PfUDH$IhUtL{A_U7ea z1fS^#FlP8iE^qJQK?Mcvl-e5*5J0SZbQ>Z!(UD?s8XQ3LpTDfJ3>OZLG{#bDIxcGe zuBWhyMtI|qxnUG>WPvc*{Ro;No@SZb@6;4lLy9QjuE?AaaHI8`^T71g(d8WvokYEH|FBFjB2x1b zBO;tezp&B-w|8_btjv$&Q6oj9&aoep7F__vnXJM)qkQ~PeEeE}&2Eaj@PuMe&j8Oe zd&In!rZGlWRy->odV%*x1s$&cp6UzU?I zg=85pp^cp#aUZ*V+&RablzI(ddmI`A=##aDg&L&Z)=|jFus4t%8yvhH5CGu@bWKx9 zX&khNV=go_6c=2I=K)n0pjybfGdVq-U3li1a@_0JuZ8JVFrE-)STVc96bMde(_4Bd z(ijZ@4L`QV1OX0e?^Dza4C`QmND!e-f|*~ffBZYN3$}q}^m#Prup{Eqggea4%sciR zhNf3zb_x}r7#GLI%siV*$uz>HmPLB>tqusr;fWh+YO)9`$z<(k^4{X$i@BUC8w_xP?}%|JDXOX(zcvd3ZNU9USNYt3 zmM#JP{YiGVa&KK|=3X`Ct;SjV_afc)2;0^Jl@Fbhh@l4ukp;?v$<<>cv-dV?6QU|e zgPU8SaFtIiUWJ{La}@SxQ9=Lij=rWTog4#jc*MVklBN7#{P~4UAy;8Ec1Cy|yov)i zF1;RA047Cp0L1m(J8<>uR#tGU(`q28(lapBy-{loN2LMZ7bk?Ny12Z>-x4qfy+w6Z zO<)2dRW=u0V}jobU;O$uKmYcfJCObXlkp>Z_Gg_;Q|{i~5ngxU{COr`bG0l@S=nvj zb!Mkx;Nq29L6U@^3tJB`qNuR2yTaG_bJa}yIKhF4|H18RHF!hhJeOy#67C9|Iz<#F z0cJ4rP_@+t;{do|JXO#?aHZbf-piTPYH6*HSe2#_{eWbUoSe+F1DcMcGQ^|aGCC@% zTwpg~ei9RDPUN@SdWmz3ah3mkVm(WZil*P_mQf)&XRL0gIWijd*8l&SaaO@WVm|f%d@^=t58|pXAO;wo8mTlPxA2vg@%^j2G`?rijU+^N+$ieCyBqr~*DP#e)_g@H@EOFb`ewmPbVjd$ zfz=i2Y@EZ%|D-@Z-StF-|r zkB$w+nVFZD&|edbZ+Ly@WM>z$|M3nJTGgIbCSMWdGuczJh*yQ!{`4t26llCmDK31R zaLpCZ1*ia#07g+K3nYXP8#^W$a6v`I*3J&99UIv(R@SS~DJ?{cEy^*s5gqL-bq|k@ zE;MgATz*CV{y_)q*}y=u-e>GimgJO_l)HC}AsB(51I({AxiWWRCxnKKQBFZYm(EvL zN=+S$x&go-|GzCL0I035udlDI4P**L31V~$3k#Fe34Z?aWd;$m!Q+^WMCS?!9l^aH z_z^_o$d23+ubLi0J3sTwL(!p0-$ESC*~1 zE-9YP-uLc2gy${Elv4jAzWo2$v;M~FR18X7Lh8(1T(dD}lEhq9?27}3nWwuz(SV(a z30v~*=k)c7Dd_$e|IEp-*3-SBlcS@^EO2#twHZRv19>nvH-{?#-UBg0JIVUQ-pq=R z2~1?LB7qx17$uG31BwiCl9G~2OT7@*#Wr3b^zjbg>k)v~M@)VA#DDpsE}9UUDe!M$ zk?-Z5XPL+sTVaTJ@LbT)2p=JeHUP;b^f2r1$)%-y=O;!Nh^cC?PnS=gI(-^dju?i2 zCD1i&8SJjEa&Ix%rTRjUUB=p;gEAoX!NCy-!vj1NDHr5AfGhbA+aL`^zI~wfAv2x{ z|KV(yI`u;?PEJS^JNA~kBQ%C6HlkXFwiW0I*sW2)w-T4z7Bi>5y~%>(Jj$&ZkA z@ss~EO+yQ#xt5K)qY0k>mE;R^ySJ}T62%0xRJt2I^e^M2y|VI_T@RoISUDRTTPn?- znH>AJMMnThfJ0ziq7er6Bp{&m%JybNQc_=Y^GR4DQv{*C_37o&N3#aqLJpmVbG%r$ zw13wSIvTJi9TcD}h1+w{oWa_(K>H|3LGo!~biVceU-(hs!6|*4MWQRsCHiN48}+pc4|#w1p5D@|Lp<^Dztb{^=OqYXwteL`SFg?k zY;5Wn8^6rXZZOF$exvQ=GzT0S&^Y$up<+gP_Vbn40UmQ!4G)hM3}z@#SiWNVSx|Mz zK}gk>QWItM$$~y&IJD)C@53d_bchEn%2&!>Bp@wECun^TO+3kZ@GCvh7eo2VnUjga*5@kXLXlE3_m&z8f8Q z4>>u~q%z#*CMNIAPJt@c(0A0;jl!lgvmYND%P}e&o0#}KBO_I~?zn1%)yU~>KXAx1`M8J%Y*{PO2!-F-SUtg^!^Mj6l z`BV(HyB8O%p~B+gFQZOu;hg!$w(*!tt2rFjr6ei8@-n91Op_#XorC&Vs8 zTLrtb-6hH@Dvcc-k4qDg@P<839Ux70F%|K*`zsnd{Z1lAqo#H?4-!zKg!l2z3v$O{ zaUlIoDY?eP%lk4p`4uE|gz0e5Ahie#jOf|WeuDj4TpY_3NX!dd$~6IK1o|R|WxhKi zSB3!pG%yRooiHMml^b{#zd=TS^ZNyEh?iH@VpiHU;f(ti=!%~{As0OZ8s*^Z3|*J7 z{_2?5TQ)!5*x=w`c)?h5Oi|!+_@uH?93cn!{0yR`Q;>WD*7@Gq887AvhGJaOEs7}HK|njt?-8rkCLTgDgm9q3dd|3bOI%;yaK)e0T62m{{^-NCS2>) z{<{7-S@NFn8fo@09aRC2d6z8#IKBsCqrI4a_hmz4qTU#!zr8$6CbZ8cmp21sd zq(1A3$2?L~1#P}L^;hpK|Mnc<9&+>pRg9z-N`2HOOeaw1zUZFp1nB@9?5cAD$CEzj z`0z2Suu>DaHLY(ylSJ4MvC4#y32arwvAJ||gvG?tIQt_wj^erD_w@>F6Yk&t44f-t zU4f>Mm}rE70#gZzCrl_%BGEUl<{0aDDHt*{GAyjDVCzxoeZlOSof%T1xO*CL0eCEF zyAzSRsBoX%ZZrE|IjW?plj0c(difR?vGCZ-i2OmbM_LlhTV_HJLj!`HsVTEZF)%%N zZOTVDmCA~W`*L|^B0nZnULF}8O_9JUureUZ)KPTs!H3F7nzXhe^))s!a`vh!5-X%q zrAYMf@#W?{jJaU0q*PBl)NxA3)pZd;Ra-0*stiyQngZmFgzTyQ{uz|!w%s&NF6u0k zIM1T4PFyNT3Fq!o46SR*bNKrD;wSMFpCM(Uaxkw^++OvXFzWRSLRHfBFI_5yhL@h? zbBxRcg@RjxtOOZqwIxj+i3xX|7@QqLqvz)4hSv~~xD74^aO;Ru@n!b?nF%liOM8+@ zrLelhwvU88RtH}=y{3UUP@o|fFE0cIiyJpidw2kwL6%JW2zj8)Yx(sE^VT#AU9yy`0&${HbYbT?2~^r(O{BB<$fl0786xJg7EAIcUYX zrXPKt5O|mORqD5^PU2A_3Y8`o(!bi!tAmjQVHGYnHgEcc7)VFAK~-8dscJTHT{2Vm~6 zu)W4Al|u9}ad zebm3qJ*ieQS;)MM@RM*|oNwG{MH&We2EIplxF>?xQC7N_EOJT~?d0OI?iN9w12(!=3>`7GAS12GvldSg*rxO9$fdbney^9ws zp#)rD>#DpxEx?F1KXK{RO;=+e1Oz!CaRS<;rlrBZ2ZKg*vGy%}$|_fW>FDej!Qofr zzoA{8C`1Y=C@4lqeF2|$QnTGZBCfYai{-yfB>$*?Y#`{D`z8)r+S)G6&9!~`QVcOt zQSlSB>1{inXJ^kZEF?lb#DrZW^!XBxbI6CexQ62zXdqEWMC2peK#WBPXRD!{FcUB? zWdNn+RN7CQfU>zDX{^+uhqdyKqq|^9$r#%2wh43jUr47MsW}RuKqS99Kb_#(ZUnh z+tTv*a>+$RmJW==PDU7{oZ#ZLde_N_-r?Z%U{sFMIdV_J|O`S z#u7LL<-(kZLye)bMU1pou9cWpg7wU-k-%o~Wv8r(1!GW(>nQr}j z{@b^yn!k;b$ZYr7U9`A(@gW4^z%uGwdA|mE>^D43sAP4YKRemmGcg+(8Y*veYB&o>f#xj-5H?>F1X9@HR1-@8z`yOKbUAt403A zgmpv^uqAR=mCj;ZJEZ|V1O1TVRH+P2f#xbGD0oEJJ~=n{Vf_%Y@}O`2cBEWfKorFw ztq5yE)Po8#H>C#U2@$3f#`^m8o&n5-3IJbjD|0vkA%b)gBrNmBcuo@nai(f$Fz46G zTFgF#VQ6B~4{5*I^XhGc*=1#OyR2z~575%ym586T_6>L}d6rDq{{&Bv`vWLk`=nwY9a56Z;1|exR(My&0<2 zj~fcAszBV--=SX@EBYGSTR+f z$d-4sGSbo}#8kMi^o-;+*ILn~STrs)tFJsMiyFR~2sXoL9{Fkp zC8n=bXu-ef{Q2%I$^7umNoqu7kRiF@;PBHst`vu~aC8OCXTCkl%LK3qt(qv|b4Due z*|iJG4HH>^V}h8s&uQTi>ZGY}hH`Slz%wHb_)!?mnDt9pH-zIi)G^e*f(=tDTM%2ecqU?0@4&p+*PUWpwEMc_t+FU!iyeUM(>zbl~h zS96AQ00{|&7V&cdHizn?;7Yiyue<@AfJFh8jMJ%DZqzHpB{Dyv#*Iy(#@vANC7#{J zphtxQ01*w@q8sVB3YUeR~PE`(@jLZ**CNMStesOGvF5{vJFc#vod?N3Ah_x0BmYonGmKuu5s^%sg&lPMhUcK1 z17?S>Qk(CB;4osYQ&8C{KZY{UVd_zC95_okH)wKavBT*Lq%oWlV>8LdK?`K)%+1Ws zcr87UPMJ<SiADB{9uei(_!y_7Ex(}4#=G{Q+Z6vjeb?OA%FdpI(}ZCE@9U2HG{ zymDoExel_ekptEeK}3w~qg-z1aTJ5-UE0`W-@Yw_Qw(;I+w9!;?kYg459F+lSRADl zT5_TEK}P`V5fypFdK`uDA|vCh;dxMHXw?`x=vqKE7}|gqm;pcFpEkcgcZdAwj)=%e zS+0eB$Day=Jc8`DM1VAJsIlG+JJOq#iP-Mgn8(bZLfc;OG4}q<1lJSCBRybm;D}Q1 zDB$)593Kh|mE-Jtb;UnW%F7F4sv~$E^??HdIKeYFJH4^)>39o8l2#oC8d(sVm7gC` zY7K?W7h%*ZSAN3N#Wg@aNXyCLSt+1qtUP{9{n|FU{kvqb+nbug3RJejY~3_7#~$kQ zUhF|%MbN6IPV_Y>H~vYXoH!3x?%)}>la?|#oqJ$;OX&28#}7L5uZQE~C_u{i&;;B5bqY ze{VTQoYgoacK7Z_q^Hnl{3Xh$aK_~r3yT@v4xkDKMGFGn)6--W6vR9Ukxxli;qb)- z^2)Gih&up&H0TEgSPM6(v>y}vofd^}@811D_@(EbnABc;CJF=w4Wus*DUNAp-Zoi0TE`|MnhdQd0EA(Wl%AD)<)YJ@NwR-wIn?J6sE@lGvAyx-0N&E;AaZi`_OfB?R1fj(bS|YG8=g8`Q{e$RuOmW>F&l)0;%Je z1gz#Gl0MyeDQG@s8O=i;2SbA)TF=RQA4N0IaIzKn*(8zjrb6a`7tdv zqA>}A@zzRyIk#9i`>CnP&cY%ZW}*CH z-?gRRp!*0KpG{u?hYrl3`vIBG|6Vm>wfJ%ic0lkLl2?U!Lo9k?c}@p}YgJWM*m967 zfEr7&m0F{UOooDkJTa8*?O(w=?c!m359DY*?Y1xx6a5m!yI)vor+AMY30-h6+ z)`-#}_ka&%A>F?HS$ewf1Z|D3Z-t9I_8Ve`I11wL?_Z%QY;%IomY17#xF%`&20kTn`EZj;fjGiO^FJ zZNi_J5)!_$zP_7FOK#}SmAb_6yg$J%9SXLQrlyST5ng;e1|0icDoKAoTXym35szOa z5|1{HEaCzX7Q^qCZH7O1aJCUZaC}w=eFIZ@Fg?6fB|-G*#{tmm(i_;Z7h9e~6@z+7 z;D*Nc;sv*8!qntsgP1oAT}%kH{1`FU9HcQ&@KE)V2vkg!lME!x>+2H~XBqwe_8CF{ zf$;x3$onskYX5!f{qO7T|NYzle_V?HUbX*Twf|!J{r499+egU!{j<;hZ|`fhn>+Fw X6;0w(sRi*VbR-J0Dl$3Jm;L@9l*hNY literal 21883 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 literal 19241 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 S^Z-#ePAQ#NOp({W_kRE^+O%W< diff --git a/galata/test/jupyterlab/toc.test.ts-snapshots/toggle-numbered-list-jupyterlab-linux.png b/galata/test/jupyterlab/toc.test.ts-snapshots/toggle-numbered-list-jupyterlab-linux.png index 837c76e1ae24e82fef9ef20a97f4fbfd1c9d0592..b990b46edb1104b5126602281228695b04b8c79e 100644 GIT binary patch literal 17044 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 XApQ}{*o1#(VuzHNoM@`Zy+8jOJy-u9 literal 17561 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 CEF}2= diff --git a/packages/debugger/package.json b/packages/debugger/package.json index b6e426506019..9d17269352eb 100644 --- a/packages/debugger/package.json +++ b/packages/debugger/package.json @@ -50,7 +50,7 @@ "dependencies": { "@codemirror/state": "^6.4.1", "@codemirror/view": "^6.26.3", - "@jupyter/react-components": "^0.16.3", + "@jupyter/react-components": "^0.16.6", "@jupyter/ydoc": "^2.0.1", "@jupyterlab/application": "^4.3.0-alpha.2", "@jupyterlab/apputils": "^4.4.0-alpha.2", diff --git a/packages/debugger/src/panels/variables/index.ts b/packages/debugger/src/panels/variables/index.ts index 00df08a97d12..7461ccdbf0cb 100644 --- a/packages/debugger/src/panels/variables/index.ts +++ b/packages/debugger/src/panels/variables/index.ts @@ -73,14 +73,14 @@ export class Variables extends PanelWithToolbar { const treeViewButton = new ToolbarButton({ icon: treeViewIcon, - className: 'jp-TreeView', + className: 'jp-TreeView-Button', onClick: onViewChange, tooltip: trans.__('Tree View') }); const tableViewButton = new ToolbarButton({ icon: tableRowsIcon, - className: 'jp-TableView', + className: 'jp-TableView-Button', onClick: onViewChange, tooltip: trans.__('Table View') }); diff --git a/packages/debugger/src/panels/variables/tree.tsx b/packages/debugger/src/panels/variables/tree.tsx index c5fd29041f31..44c296b31aed 100644 --- a/packages/debugger/src/panels/variables/tree.tsx +++ b/packages/debugger/src/panels/variables/tree.tsx @@ -3,21 +3,21 @@ import { ITranslator, nullTranslator } from '@jupyterlab/translation'; -import { ISignal, Signal } from '@lumino/signaling'; - import { - caretDownEmptyIcon, + getTreeItemElement, ReactWidget, searchIcon } from '@jupyterlab/ui-components'; +import { Button, TreeItem, TreeView } from '@jupyter/react-components'; + import { ArrayExt } from '@lumino/algorithm'; import { CommandRegistry } from '@lumino/commands'; import { DebugProtocol } from '@vscode/debugprotocol'; -import React, { useCallback, useEffect, useState } from 'react'; +import React, { useCallback, useEffect, useMemo, useState } from 'react'; import { convertType } from '.'; @@ -27,8 +27,6 @@ import { IDebugger } from '../../tokens'; import { VariablesModel } from './model'; -const BUTTONS_CLASS = 'jp-DebuggerVariables-buttons'; - /** * The body for tree of variables. */ @@ -43,7 +41,6 @@ export class VariablesBodyTree extends ReactWidget { this._commands = options.commands; this._service = options.service; this._translator = options.translator; - this._hoverChanged = new Signal(this); const model = (this.model = options.model); model.changed.connect(this._updateScopes, this); @@ -61,9 +58,6 @@ export class VariablesBodyTree extends ReactWidget { const handleSelectVariable = (variable: IDebugger.IVariable) => { this.model.selectedVariable = variable; }; - const collapserIcon = ( - - ); if (scope?.name !== 'Globals') { this.addClass('jp-debuggerVariables-local'); @@ -73,25 +67,17 @@ export class VariablesBodyTree extends ReactWidget { return scope ? ( <> - { - this._hoverChanged.emit(data); - }} - collapserIcon={collapserIcon} - /> - + + + ) : (

@@ -134,152 +120,8 @@ export class VariablesBodyTree extends ReactWidget { private _filter = new Set(); private _service: IDebugger; private _translator: ITranslator | undefined; - private _hoverChanged: Signal; -} - -interface IHoverData { - /** - * The mouse target. - */ - target: (EventTarget & HTMLElement) | null; - /** - * The variable corresponding to node under cursor. - */ - variable: IDebugger.IVariable | null; } -interface ITreeButtonsProps { - /** - * The commands registry. - */ - commands: CommandRegistry; - /** - * The debugger service. - */ - service: IDebugger; - /** - * The application language translator - */ - translator?: ITranslator; - /** - * Callback on variable selection - */ - handleSelectVariable: (variable: IDebugger.IVariable) => void; - /** - * Signal to be emitted on mouse over event. - */ - hoverChanged: ISignal; -} - -/** - * The singleton buttons bar shown by the variables. - */ -const TreeButtons = (props: ITreeButtonsProps): JSX.Element => { - const { commands, service, translator, handleSelectVariable } = props; - const trans = (translator ?? nullTranslator).load('jupyterlab'); - - const [buttonsTop, setButtonsTop] = useState(0); - const [variable, setVariable] = useState(null); - - let stateRefreshLock = 0; - - // Empty dependency array is to only register once per lifetime. - const handleHover = useCallback((_: VariablesBodyTree, data: IHoverData) => { - const current = ++stateRefreshLock; - if (!data.variable) { - // Handle mouse leave. - if (current !== stateRefreshLock) { - return; - } - const target = data.target; - if ( - target && - // Note: Element, not HTMLElement to permit entering icon. - target instanceof Element && - target.closest(`.${BUTTONS_CLASS}`) - ) { - // Allow to enter the buttons. - return; - } - setVariable(null); - } else { - // Handle mouse over. - setVariable(data.variable); - requestAnimationFrame(() => { - if (current !== stateRefreshLock || !data.target) { - return; - } - setButtonsTop(data.target.offsetTop); - }); - } - }, []); - - useEffect(() => { - props.hoverChanged.connect(handleHover); - return () => { - props.hoverChanged.disconnect(handleHover); - }; - }, [handleHover]); - - return ( -
- -
- ); -}; - interface IVariablesBranchProps { /** * The commands registry. @@ -296,14 +138,6 @@ interface IVariablesBranchProps { * Callback on variable selection */ handleSelectVariable?: (variable: IDebugger.IVariable) => void; - /** - * Callback on mouseOver/mouseLeave event. - */ - onHoverChanged?: (data: IHoverData) => void; - /** - * Collapser icon component - */ - collapserIcon: JSX.Element; } /** @@ -315,16 +149,8 @@ interface IVariablesBranchProps { * @param props.filter Optional variable filter list. */ const VariablesBranch = (props: IVariablesBranchProps): JSX.Element => { - const { - commands, - data, - service, - filter, - translator, - handleSelectVariable, - onHoverChanged, - collapserIcon - } = props; + const { commands, data, service, filter, translator, handleSelectVariable } = + props; const [variables, setVariables] = useState(data); useEffect(() => { @@ -332,7 +158,7 @@ const VariablesBranch = (props: IVariablesBranchProps): JSX.Element => { }, [data]); return ( -
    + <> {variables .filter( variable => !(filter || new Set()).has(variable.evaluateName || '') @@ -348,12 +174,10 @@ const VariablesBranch = (props: IVariablesBranchProps): JSX.Element => { filter={filter} translator={translator} onSelect={handleSelectVariable} - onHoverChanged={onHoverChanged} - collapserIcon={collapserIcon} /> ); })} -
+ ); }; @@ -385,14 +209,6 @@ interface IVariableComponentProps { * Callback on selection */ onSelect?: (variable: IDebugger.IVariable) => void; - /** - * Callback on mouseOver/mouseLeave event. - */ - onHoverChanged?: (data: IHoverData) => void; - /** - * Collapser icon component - */ - collapserIcon: JSX.Element; } function _prepareDetail(variable: IDebugger.IVariable) { @@ -420,76 +236,156 @@ function _prepareDetail(variable: IDebugger.IVariable) { * @param props.filter Optional variable filter list. */ const VariableComponent = (props: IVariableComponentProps): JSX.Element => { - const { - commands, - data, - service, - filter, - translator, - onSelect, - onHoverChanged, - collapserIcon - } = props; + const { commands, data, service, filter, translator, onSelect } = props; const [variable] = useState(data); - const [expanded, setExpanded] = useState(); - const [variables, setVariables] = useState(); + const [showDetailsButton, setShowDetailsButton] = useState(false); + const [expanded, setExpanded] = useState(false); + const [variables, setVariables] = useState( + null + ); + const trans = useMemo( + () => (translator ?? nullTranslator).load('jupyterlab'), + [translator] + ); const onSelection = onSelect ?? (() => void 0); - const expandable = - variable.variablesReference !== 0 || variable.type === 'function'; + const expandable = useMemo( + () => variable.variablesReference !== 0 || variable.type === 'function', + [variable.variablesReference, variable.type] + ); - const onVariableClicked = async (e: React.MouseEvent): Promise => { - if (!expandable) { - return; + const details = useMemo(() => _prepareDetail(variable), [variable]); + + const hasMimeRenderer = useMemo( + () => + ![ + 'special variables', + 'protected variables', + 'function variables', + 'class variables' + ].includes(variable.name), + [variable.name] + ); + + const disableMimeRenderer = useMemo( + () => + !service.model.hasRichVariableRendering || + !commands.isEnabled(Debugger.CommandIDs.renderMimeVariable, { + name: variable.name, + frameID: service.model.callstack.frame?.id + } as any), + [ + service.model.hasRichVariableRendering, + variable.name, + service.model.callstack.frame?.id + ] + ); + + const fetchChildren = useCallback(async () => { + if (expandable && !variables) { + setVariables(await service.inspectVariable(variable.variablesReference)); } - e.stopPropagation(); - const variables = await service.inspectVariable( - variable.variablesReference - ); - setExpanded(!expanded); - setVariables(variables); - }; + }, [expandable, service, variable.variablesReference, variables]); + + const onVariableClicked = useCallback( + async (event: React.MouseEvent): Promise => { + const item = getTreeItemElement(event.target as HTMLElement); + if (event.currentTarget !== item) { + return; + } + + if (!expandable) { + return; + } + setExpanded(!expanded); + }, + [expandable, expanded] + ); + + const onSelectChange = useCallback( + (event: CustomEvent) => { + if (event.currentTarget === event.detail && event.detail.selected) { + onSelection(variable); + } + }, + [variable] + ); + + const renderVariable = useCallback(() => { + commands + .execute(Debugger.CommandIDs.renderMimeVariable, { + name: variable.name, + frameID: service.model.callstack.frame?.id + } as any) + .catch(reason => { + console.error(`Failed to render variable ${variable?.name}`, reason); + }); + }, [commands, variable.name, service.model.callstack.frame?.id]); + + const onContextMenu = useCallback( + (event: React.MouseEvent): void => { + const item = getTreeItemElement(event.target as HTMLElement); + if (event.currentTarget !== item) { + return; + } + + onSelection(variable); + }, + [variable] + ); return ( -
  • => onVariableClicked(e)} - onMouseDown={e => { - e.stopPropagation(); - onSelection(variable); - }} - onMouseOver={(event: React.MouseEvent) => { - if (onHoverChanged) { - onHoverChanged({ target: event.currentTarget, variable }); - event.stopPropagation(); + onContextMenu={onContextMenu} + onKeyDown={event => { + if (event.key == 'Enter') { + if (hasMimeRenderer && showDetailsButton) { + onSelection(variable); + renderVariable(); + } } }} - onMouseLeave={(event: React.MouseEvent) => { - if (onHoverChanged) { - onHoverChanged({ - target: event.relatedTarget as EventTarget & HTMLElement, - variable: null - }); - event.stopPropagation(); - } + onFocus={event => { + setShowDetailsButton(!event.defaultPrevented); + event.preventDefault(); + }} + onBlur={event => { + setShowDetailsButton(false); + }} + onMouseOver={(event: React.MouseEvent) => { + setShowDetailsButton(!event.defaultPrevented); + event.preventDefault(); + }} + onMouseLeave={(event: React.MouseEvent) => { + setShowDetailsButton(false); }} > - - { - // note: using React.cloneElement due to high typestyle cost - expandable ? React.cloneElement(collapserIcon) : null - } - {variable.name} - - {_prepareDetail(variable)} - - {expanded && variables && ( + {details && ( + {details} + )} + {hasMimeRenderer && showDetailsButton && ( + + )} + {variables ? ( { filter={filter} translator={translator} handleSelectVariable={onSelect} - onHoverChanged={onHoverChanged} - collapserIcon={collapserIcon} /> + ) : ( + /* Trick to ensure collapse button is displayed + when variables are not loaded yet */ + expandable && )} -
  • + ); }; diff --git a/packages/debugger/style/variables.css b/packages/debugger/style/variables.css index 7a6d7ebe35e2..3d1d1948b971 100644 --- a/packages/debugger/style/variables.css +++ b/packages/debugger/style/variables.css @@ -20,60 +20,15 @@ position: relative; } -.jp-DebuggerVariables-branch { - list-style: none; - margin: 0; - padding: 0; -} - -.jp-DebuggerVariables-body - .jp-DebuggerVariables-branch - .jp-DebuggerVariables-branch { - grid-area: nested; -} - -.jp-DebuggerVariables-body > .jp-DebuggerVariables-branch { - padding-top: 0.1em; -} - -.jp-DebuggerVariables-branch li { - padding: 3px 0; - cursor: pointer; - color: var(--jp-content-font-color1); - display: grid; - grid-template: - 'collapser name detail' - 'nested nested nested'; - grid-template-columns: max-content max-content 1fr; -} - -.jp-DebuggerVariables-branch li:not(:has(li:hover)):hover { - background: var(--jp-layout-color2); -} - -.jp-DebuggerVariables-collapser { - width: 16px; - grid-area: collapser; - transform: rotate(-90deg); - transition: transform 0.2s cubic-bezier(0.25, 0.46, 0.45, 0.94); -} - -.jp-DebuggerVariables-collapser.jp-mod-expanded { - transform: rotate(0); -} - -.jp-DebuggerVariables-buttons { - position: absolute; - top: 0; - right: 8px; - margin-top: 1px; -} - .jp-DebuggerVariables-name { color: var(--jp-mirror-editor-attribute-color); grid-area: name; } +.jp-DebuggerVariables-name:last-of-type { + flex: 1 1 auto; +} + .jp-DebuggerVariables-name::after { content: ':'; margin-right: 5px; @@ -82,30 +37,10 @@ .jp-DebuggerVariables-detail { /* detail contains value for primitive types or name of the type otherwise */ color: var(--jp-mirror-editor-string-color); -} - -.jp-DebuggerVariables-renderVariable { - border: none; - background: none; - cursor: pointer; - transform-origin: center center; - transition: transform 0.2s cubic-bezier(0.4, 0, 1, 1); -} - -.jp-DebuggerVariables-renderVariable:active { - transform: scale(1.35); -} - -.jp-DebuggerVariables-renderVariable:hover { - background-color: var(--jp-layout-color2); -} - -.jp-DebuggerVariables-renderVariable:disabled { - cursor: default; -} - -.jp-DebuggerVariables-branch li > .jp-DebuggerVariables-branch { - margin-left: 12px; + flex: 1 1 auto; + overflow: hidden; + white-space: nowrap; + text-overflow: ellipsis; } .jp-DebuggerVariables-grid { diff --git a/packages/lsp-extension/src/index.ts b/packages/lsp-extension/src/index.ts index c52a15be999c..e5afc7cfdd46 100644 --- a/packages/lsp-extension/src/index.ts +++ b/packages/lsp-extension/src/index.ts @@ -283,6 +283,7 @@ function addRunningSessionManager( let currentRunning: RunningLanguageServer[] = []; managers.add({ name: trans.__('Language servers'), + supportsMultipleViews: false, running: () => { const connections = new Set([...lsManager.connections.values()]); diff --git a/packages/running-extension/src/kernels.tsx b/packages/running-extension/src/kernels.tsx index ea85fd22efd3..448c2736a780 100644 --- a/packages/running-extension/src/kernels.tsx +++ b/packages/running-extension/src/kernels.tsx @@ -52,7 +52,8 @@ export async function addKernelRunningSessionManager( // Add the kernels pane to the running sidebar. managers.add({ name: trans.__('Kernels'), - running: () => { + supportsMultipleViews: true, + running: (options: { mode: 'tree' | 'list' }) => { const kernelsBySpec = new Map(); for (const kernel of kernels.running()) { @@ -69,7 +70,7 @@ export async function addKernelRunningSessionManager( ); } - return Array.from(kernelsBySpec.entries()).map( + const treeItems = Array.from(kernelsBySpec.entries()).map( ([spec, kernels]) => new Private.KernelSpecItem({ name: spec, @@ -78,6 +79,11 @@ export async function addKernelRunningSessionManager( trans }) ); + return options.mode === 'tree' + ? treeItems + : treeItems + .map(item => item.children.map(i => i.children ?? []).flat()) + .flat(); }, shutdownAll: () => kernels.shutdownAll(), refreshRunning: () => diff --git a/packages/running-extension/src/opentabs.ts b/packages/running-extension/src/opentabs.ts index 53751356c222..4597c21f9281 100644 --- a/packages/running-extension/src/opentabs.ts +++ b/packages/running-extension/src/opentabs.ts @@ -68,6 +68,7 @@ export function addOpenTabsSessionManager( managers.add({ name: trans.__('Open Tabs'), + supportsMultipleViews: false, running: () => { return Array.from(labShell.widgets('main')).map((widget: Widget) => { signaler.addWidget(widget); diff --git a/packages/running-extension/src/recents.ts b/packages/running-extension/src/recents.ts index 55422e3a6bda..1cb6dc6eae4c 100644 --- a/packages/running-extension/src/recents.ts +++ b/packages/running-extension/src/recents.ts @@ -29,6 +29,7 @@ export function addRecentlyClosedSessionManager( managers.add({ name: trans.__('Recently Closed'), + supportsMultipleViews: false, running: () => { return recentsManager.recentlyClosed.map((recent: RecentDocument) => { return new RecentItem(recent); diff --git a/packages/running-extension/tsconfig.json b/packages/running-extension/tsconfig.json index dc5352c57eb3..292a12327796 100644 --- a/packages/running-extension/tsconfig.json +++ b/packages/running-extension/tsconfig.json @@ -2,7 +2,8 @@ "extends": "../../tsconfigbase", "compilerOptions": { "outDir": "lib", - "rootDir": "src" + "rootDir": "src", + "lib": ["DOM", "DOM.Iterable", "ES2019", "ES2020.Intl"] }, "include": ["src/*"], "references": [ diff --git a/packages/running/package.json b/packages/running/package.json index a8dcd64bad02..9a9bc6ea773c 100644 --- a/packages/running/package.json +++ b/packages/running/package.json @@ -36,6 +36,7 @@ "watch": "tsc -b --watch" }, "dependencies": { + "@jupyter/react-components": "^0.16.6", "@jupyterlab/apputils": "^4.4.0-alpha.2", "@jupyterlab/statedb": "^4.3.0-alpha.2", "@jupyterlab/translation": "^4.3.0-alpha.2", diff --git a/packages/running/src/index.tsx b/packages/running/src/index.tsx index 59f588e1c011..2c6b498af739 100644 --- a/packages/running/src/index.tsx +++ b/packages/running/src/index.tsx @@ -5,19 +5,20 @@ * @module running */ +import { Button, TreeItem, TreeView } from '@jupyter/react-components'; import { Dialog, showDialog } from '@jupyterlab/apputils'; +import { IStateDB } from '@jupyterlab/statedb'; import { ITranslator, nullTranslator, TranslationBundle } from '@jupyterlab/translation'; import { - caretDownIcon, - caretRightIcon, closeIcon, collapseAllIcon, expandAllIcon, FilterBox, + getTreeItemElement, IScore, LabIcon, PanelWithToolbar, @@ -27,18 +28,16 @@ import { tableRowsIcon, Toolbar, ToolbarButton, - ToolbarButtonComponent, treeViewIcon, UseSignal } from '@jupyterlab/ui-components'; -import { IStateDB } from '@jupyterlab/statedb'; import { Token } from '@lumino/coreutils'; import { DisposableDelegate, IDisposable } from '@lumino/disposable'; import { ElementExt } from '@lumino/domutils'; import { Message } from '@lumino/messaging'; import { ISignal, Signal } from '@lumino/signaling'; import { Panel, Widget } from '@lumino/widgets'; -import React, { isValidElement, ReactNode } from 'react'; +import React, { isValidElement, ReactNode, useCallback } from 'react'; /** * The class name added to a running widget. @@ -60,11 +59,6 @@ const SECTION_CLASS = 'jp-RunningSessions-section'; */ const CONTAINER_CLASS = 'jp-RunningSessions-sectionContainer'; -/** - * The class name added to the running kernel sessions section list. - */ -const LIST_CLASS = 'jp-RunningSessions-sectionList'; - /** * The class name added to the running sessions items. */ @@ -90,11 +84,6 @@ const SHUTDOWN_BUTTON_CLASS = 'jp-RunningSessions-itemShutdown'; */ const SHUTDOWN_ALL_BUTTON_CLASS = 'jp-RunningSessions-shutdownAll'; -/** - * The class name added to a collapse/expand carets. - */ -const CARET_CLASS = 'jp-RunningSessions-caret'; - /** * The class name added to icons. */ @@ -213,15 +202,16 @@ function Item(props: { const trans = translator.load('jupyterlab'); // Handle shutdown requests. - let stopPropagation = false; const shutdownItemIcon = props.shutdownItemIcon || closeIcon; const shutdownLabel = (typeof props.shutdownLabel === 'function' ? props.shutdownLabel(runningItem) : props.shutdownLabel) ?? trans.__('Shut Down'); - const shutdown = () => { - stopPropagation = true; - runningItem.shutdown?.(); + const shutdown = (event: React.MouseEvent) => { + if (!event.defaultPrevented) { + event.preventDefault(); + runningItem.shutdown?.(); + } }; // Materialise getter to avoid triggering it repeatedly @@ -230,9 +220,18 @@ function Item(props: { // Manage collapsed state. Use the shutdown flag in lieu of `stopPropagation`. const [collapsed, collapse] = React.useState(false); const collapsible = !!children?.length; - const onClick = collapsible - ? () => !stopPropagation && collapse(!collapsed) - : undefined; + const onClick = useCallback( + (event: React.MouseEvent) => { + const item = getTreeItemElement(event.target as HTMLElement); + if (event.currentTarget !== item) { + return; + } + if (collapsible) { + collapse(!collapsed); + } + }, + [collapsible, collapsed] + ); // Listen to signal to collapse from outside props.collapseToggled.connect((_emitter, newCollapseState) => @@ -242,61 +241,50 @@ function Item(props: { if (runningItem.className) { classList.push(runningItem.className); } - if (props.child) { - classList.push('jp-mod-running-child'); - } - if (props.child && !children) { - classList.push('jp-mod-running-leaf'); - } return ( <> -
  • -
    + {icon ? ( + typeof icon === 'string' ? ( + + ) : ( + + ) + ) : undefined} + runningItem.open!())} > - {collapsible && - (collapsed ? ( - - ) : ( - - ))} - {icon ? ( - typeof icon === 'string' ? ( - - ) : ( - - ) - ) : undefined} - runningItem.open!())} + {runningItem.label()} + + {detail && {detail}} + {runningItem.shutdown && ( +
    - {collapsible && !collapsed && ( + + + )} + {children && ( )} -
  • + ); } @@ -326,7 +314,7 @@ function List(props: { .map(({ item }) => item) : props.runningItems; return ( -
      + <> {items.map((item, i) => ( ))} -
    + ); } @@ -415,6 +403,8 @@ class FilterWidget extends ReactWidget implements IFilterProvider { } class ListWidget extends ReactWidget { + private _mode: 'tree' | 'list'; + constructor( private _options: { manager: IRunningSessions.IManager; @@ -431,6 +421,20 @@ class ListWidget extends ReactWidget { } } + /** + * Whether the items are displayed as a tree view + * or a flat list. + */ + get mode(): 'tree' | 'list' { + return this._mode; + } + set mode(v: 'tree' | 'list') { + if (this._mode !== v) { + this._mode = v; + this._update.emit(); + } + } + dispose() { Signal.clearData(this); super.dispose(); @@ -452,18 +456,24 @@ class ListWidget extends ReactWidget { if (cached) { cached = false; } else { - options.runningItems = options.manager.running(); + options.runningItems = options.manager.running({ mode: this.mode }); + } + const classes = ['jp-TreeView']; + if (this.mode === 'list') { + classes.push('jp-mod-flat'); } return (
    - + + +
    ); }} @@ -513,6 +523,7 @@ class ListWidget extends ReactWidget { class Section extends PanelWithToolbar { constructor(options: Section.IOptions) { super(); + this._listView = (options.viewMode ?? 'tree') === 'list'; this._manager = options.manager; this._filterProvider = options.filterProvider; const translator = options.translator || nullTranslator; @@ -527,19 +538,27 @@ class Section extends PanelWithToolbar { } this._updateEmptyClass(); - let runningItems = options.manager.running(); + const runningItems = options.manager.running({ + mode: + options.manager.supportsMultipleViews && !this._listView + ? 'tree' + : 'list' + }); if (options.showToolbar !== false) { this._initializeToolbar(runningItems); } - this.addWidget( - new ListWidget({ - runningItems, - collapseToggled: this._collapseToggled, - ...options - }) - ); + this._listWidget = new ListWidget({ + runningItems, + collapseToggled: this._collapseToggled, + ...options + }); + this._listWidget.mode = + options.manager.supportsMultipleViews && !this._listView + ? 'tree' + : 'list'; + this.addWidget(this._listWidget); } /** @@ -553,8 +572,12 @@ class Section extends PanelWithToolbar { switchViewButton.pressed = newState; } this._collapseToggled.emit(false); - this.toggleClass(LIST_VIEW_CLASS, newState); + if (this._manager.supportsMultipleViews === undefined) { + this.toggleClass(LIST_VIEW_CLASS, newState); + } this._updateButtons(); + this._listWidget.mode = + this._manager.supportsMultipleViews && !this._listView ? 'tree' : 'list'; this._viewChanged.emit({ mode: newState ? 'list' : 'tree' }); } @@ -653,7 +676,14 @@ class Section extends PanelWithToolbar { private _updateEmptyClass(): void { if (this._filterProvider) { - const items = this._manager.running().filter(this._filterProvider.filter); + const items = this._manager + .running({ + mode: + this._manager.supportsMultipleViews && !this._listView + ? 'tree' + : 'list' + }) + .filter(this._filterProvider.filter); const empty = items.length === 0; if (empty) { this.node.classList.toggle('jp-mod-empty', true); @@ -671,10 +701,18 @@ class Section extends PanelWithToolbar { if (!this._buttons) { return; } - let runningItems = this._manager.running(); + let runningItems = this._manager.running({ + mode: + this._manager.supportsMultipleViews && !this._listView ? 'tree' : 'list' + }); const enabled = runningItems.length > 0; - const hasNesting = runningItems.filter(item => item.children).length !== 0; + const hasNesting = + // If the flag is undefined fallback to the old behavior + // @deprecated we should remove the fallback in the next iteration + this._manager.supportsMultipleViews === undefined + ? runningItems.filter(item => item.children).length !== 0 + : this._manager.supportsMultipleViews; const inTreeView = hasNesting && !this._buttons['switch-view'].pressed; this._buttons['switch-view'].node.style.display = hasNesting @@ -696,6 +734,7 @@ class Section extends PanelWithToolbar { } | null = null; private _manager: IRunningSessions.IManager; private _listView: boolean = false; + private _listWidget: ListWidget; private _filterProvider?: IFilterProvider; private _collapseToggled = new Signal(this); private _viewChanged = new Signal(this); @@ -714,6 +753,7 @@ namespace Section { showToolbar?: boolean; filterProvider?: IFilterProvider; translator?: ITranslator; + viewMode?: 'tree' | 'list'; } /** * Information about section view state. @@ -1082,7 +1122,8 @@ export class SearchableSessionsList extends Panel { manager, translator: this._translator, showToolbar: false, - filterProvider: this._filterWidget + filterProvider: this._filterWidget, + viewMode: 'list' }); // Do not use tree view in searchable list section.toggleListView(true); @@ -1117,8 +1158,13 @@ export namespace IRunningSessions { /** * List the running models. + * + * If the manager supports tree view, it should set the flag + * {@link supportsMultipleViews}. + * It must return nested item if mode is `tree`. + * Otherwise it must return a flat list. */ - running(): IRunningItem[]; + running(options: { mode: 'tree' | 'list' }): IRunningItem[]; /** * Force a refresh of the running models. @@ -1149,6 +1195,12 @@ export namespace IRunningSessions { * The icon to show for shutting down an individual item in this section. */ shutdownItemIcon?: LabIcon; + + /** + * Whether the manager supports tree view for its items + * or only a flat list. + */ + supportsMultipleViews?: boolean; } /** diff --git a/packages/running/style/base.css b/packages/running/style/base.css index 03e6d4b07b79..183cac78f609 100644 --- a/packages/running/style/base.css +++ b/packages/running/style/base.css @@ -3,14 +3,6 @@ * Distributed under the terms of the Modified BSD License. */ -/*----------------------------------------------------------------------------- -| Variables -|----------------------------------------------------------------------------*/ - -:root { - --jp-private-running-item-height: 24px; -} - .jp-RunningSessions { display: flex; flex-direction: column; @@ -45,46 +37,34 @@ padding-left: 14px; } -.jp-RunningSessions-item { - display: flex; - flex-direction: row; - color: var(--jp-ui-font-color1); - height: var(--jp-private-running-item-height); - line-height: var(--jp-private-running-item-height); - padding: 0 8px; -} - -.jp-RunningSessions-item:hover { - background-color: var(--jp-layout-color2); - cursor: pointer; -} - -.jp-mod-running-leaf { - /** Account for lack of collapser */ - margin-left: 16px; -} - -.jp-RunningSessions-sectionContainer > .jp-RunningSessions-sectionList { - padding-left: 0; -} - .jp-RunningSessions-viewButton[aria-pressed='true'] { box-shadow: none; } +/* @deprecated For backward compatibility when sessions manager does not specify supportsMultipleViews */ .jp-mod-running-list-view .jp-RunningSessions-sectionList { padding-left: 0; } +/* @deprecated For backward compatibility when sessions manager does not specify supportsMultipleViews */ .jp-mod-running-list-view .jp-mod-running-leaf { margin-left: 0; } -.jp-mod-running-list-view .jp-RunningSessions-item.jp-mod-kernel, -.jp-mod-running-list-view .jp-RunningSessions-item.jp-mod-kernelspec { +/* @deprecated For backward compatibility when sessions manager does not specify supportsMultipleViews */ +.jp-mod-running-list-view + .jp-RunningSessions-item.jp-mod-kernelspec::part(positioning-region), +.jp-mod-running-list-view + .jp-RunningSessions-item.jp-mod-kernel::part(positioning-region) { display: none; } +/* @deprecated For backward compatibility when sessions manager does not specify supportsMultipleViews */ +.jp-mod-running-list-view + .jp-RunningSessions-item.jp-mod-kernel-widget::part(content-region) { + margin-inline-start: -2.6em; +} + .jp-RunningSessions-item.jp-mod-kernelspec, .jp-RunningSessions-item.jp-mod-kernel { user-select: none; @@ -98,10 +78,6 @@ box-shadow: none; } -.jp-RunningSessions-icon { - margin: 0 4px; -} - .jp-RunningSessions-toolbar { min-width: max-content; } @@ -130,16 +106,11 @@ span.jp-RunningSessions-icon > svg { .jp-RunningSessions-itemLabel { font-size: var(--jp-ui-font-size1); flex: 1 1 55%; - padding: 0 4px; text-overflow: ellipsis; overflow: hidden; white-space: nowrap; } -.jp-RunningSessions-itemLabel:focus { - background-color: var(--jp-layout-color2); -} - .jp-RunningSessions-itemDetail { font-size: var(--jp-ui-font-size1); flex: 1 1 45%; @@ -149,32 +120,10 @@ span.jp-RunningSessions-icon > svg { white-space: nowrap; } -.jp-RunningSessions-caret { - align-items: center; - display: flex; - padding-right: 4px; -} - -.jp-RunningSessions-caret > svg { - height: 16px; - width: 16px; -} - -.jp-RunningSessions-item .jp-RunningSessions-itemShutdown { - border-radius: 0; - margin: 0; -} - .jp-RunningSessions-item:not(:hover) .jp-RunningSessions-itemShutdown { visibility: hidden; } -.jp-RunningSessions-sectionList - .jp-RunningSessions-item - .jp-Button.jp-RunningSessions-itemShutdown:hover { - background: var(--jp-layout-color3); -} - .jp-RunningSessions-shutdownAll.jp-ToolbarButtonComponent { color: var(--jp-warn-color1); } @@ -193,6 +142,10 @@ span.jp-RunningSessions-icon > svg { outline-offset: -2px; } +.jp-RunningSessions-item.jp-mod-active.jp-TreeItem::part(positioning-region) { + background-color: transparent; +} + .jp-SearchableSessions-list > .jp-RunningSessions-section { min-height: auto; } diff --git a/packages/terminal-extension/src/index.ts b/packages/terminal-extension/src/index.ts index 130a5d022596..0cadb5aa6e68 100644 --- a/packages/terminal-extension/src/index.ts +++ b/packages/terminal-extension/src/index.ts @@ -314,6 +314,7 @@ function addRunningSessionManager( managers.add({ name: trans.__('Terminals'), + supportsMultipleViews: false, running: () => Array.from(manager.running()).map(model => new RunningTerminal(model)), shutdownAll: () => manager.shutdownAll(), diff --git a/packages/toc/package.json b/packages/toc/package.json index 40f5116f5679..07055f92ddea 100644 --- a/packages/toc/package.json +++ b/packages/toc/package.json @@ -40,6 +40,7 @@ "watch": "tsc -b --watch" }, "dependencies": { + "@jupyter/react-components": "^0.16.6", "@jupyterlab/apputils": "^4.4.0-alpha.2", "@jupyterlab/coreutils": "^6.3.0-alpha.2", "@jupyterlab/docregistry": "^4.3.0-alpha.2", diff --git a/packages/toc/src/tocitem.tsx b/packages/toc/src/tocitem.tsx index c069a4675613..bddbd00a4df1 100644 --- a/packages/toc/src/tocitem.tsx +++ b/packages/toc/src/tocitem.tsx @@ -1,9 +1,9 @@ // Copyright (c) Jupyter Development Team. // Distributed under the terms of the Modified BSD License. -import { caretDownIcon, caretRightIcon } from '@jupyterlab/ui-components'; import * as React from 'react'; import { TableOfContents } from './tokens'; +import { TreeItem, TreeItemElement } from '@jupyter/react-components'; /** * Interface describing component properties. @@ -24,7 +24,7 @@ export interface ITableOfContentsItemsProps { onMouseDown: (heading: TableOfContents.IHeading) => void; /** - * Collapse event callback. + * Collapse/Expand event callback. */ onCollapse: (heading: TableOfContents.IHeading) => void; } @@ -43,34 +43,42 @@ export class TableOfContentsItem extends React.PureComponent< render(): JSX.Element | null { const { children, isActive, heading, onCollapse, onMouseDown } = this.props; + // Handling toggle of collapse and expand + const handleToggle = (event: CustomEvent) => { + // This will toggle the state and call the appropriate collapse or expand function + if ( + !event.defaultPrevented && + (event.target as TreeItemElement).expanded !== !heading.collapsed + ) { + event.preventDefault(); + onCollapse(heading); + } + }; + return ( -
  • -
    ) => { - // React only on deepest item - if (!event.defaultPrevented) { - event.preventDefault(); - onMouseDown(heading); - } - }} - > - + ) => { + // React only on deepest item + if (!event.defaultPrevented) { + event.preventDefault(); + onMouseDown(heading); + } + }} + onKeyUp={event => { + // React on key up because key down is used for tree view navigation + // and therefore key-down on Enter is default prevented to change the + // selection state + if (!event.defaultPrevented && event.key === 'Enter' && !isActive) { + event.preventDefault(); + onMouseDown(heading); + } + }} + > +
    - {children && !heading.collapsed &&
      {children}
    } -
  • + {children} + ); } } diff --git a/packages/toc/src/toctree.tsx b/packages/toc/src/toctree.tsx index 93abcb0b6110..3a9a9cbe1ed5 100644 --- a/packages/toc/src/toctree.tsx +++ b/packages/toc/src/toctree.tsx @@ -1,6 +1,7 @@ // Copyright (c) Jupyter Development Team. // Distributed under the terms of the Modified BSD License. +import { TreeView } from '@jupyter/react-components'; import * as React from 'react'; import { TableOfContentsItem } from './tocitem'; import { TableOfContents } from './tokens'; @@ -41,12 +42,12 @@ export class TableOfContentsTree extends React.PureComponent {this.buildTree()} - + ); } diff --git a/packages/toc/style/base.css b/packages/toc/style/base.css index ec32191be179..5280649c53f3 100644 --- a/packages/toc/style/base.css +++ b/packages/toc/style/base.css @@ -7,10 +7,6 @@ | Table of Contents |----------------------------------------------------------------------------*/ -:root { - --jp-private-toc-active-width: 4px; -} - .jp-TableOfContents { display: flex; flex-direction: column; @@ -41,19 +37,7 @@ margin: 4px; } -.jp-TableOfContents ol { - list-style-type: none; -} - -/* stylelint-disable-next-line selector-max-type */ -.jp-TableOfContents li > ol { - /* Align left border with triangle icon center */ - padding-left: 11px; -} - .jp-TableOfContents-content { - /* left margin for the active heading indicator */ - margin: 0 0 0 var(--jp-private-toc-active-width); padding: 0; background-color: var(--jp-layout-color1); } @@ -68,10 +52,7 @@ .jp-tocItem-heading { display: flex; cursor: pointer; -} - -.jp-tocItem-heading:hover { - background-color: var(--jp-layout-color2); + width: 100%; } .jp-tocItem-content { @@ -81,37 +62,3 @@ text-overflow: ellipsis; overflow-x: hidden; } - -.jp-tocItem-collapser { - height: 20px; - margin: 2px 2px 0; - padding: 0; - background: none; - border: none; - cursor: pointer; -} - -.jp-tocItem-collapser:hover { - background-color: var(--jp-layout-color3); -} - -/* Active heading indicator */ - -.jp-tocItem-heading::before { - content: ' '; - background: transparent; - width: var(--jp-private-toc-active-width); - height: 24px; - position: absolute; - left: 0; - border-radius: var(--jp-border-radius); -} - -.jp-tocItem-heading.jp-tocItem-active::before { - background-color: var(--jp-brand-color1); -} - -.jp-tocItem-heading:hover.jp-tocItem-active::before { - background: var(--jp-brand-color0); - opacity: 1; -} diff --git a/packages/ui-components/package.json b/packages/ui-components/package.json index 1b95bfc35def..dcad337d3de9 100644 --- a/packages/ui-components/package.json +++ b/packages/ui-components/package.json @@ -40,8 +40,8 @@ "watch": "tsc -b --watch" }, "dependencies": { - "@jupyter/react-components": "^0.16.3", - "@jupyter/web-components": "^0.16.3", + "@jupyter/react-components": "^0.16.6", + "@jupyter/web-components": "^0.16.6", "@jupyterlab/coreutils": "^6.3.0-alpha.2", "@jupyterlab/observables": "^5.3.0-alpha.2", "@jupyterlab/rendermime-interfaces": "^3.11.0-alpha.2", diff --git a/packages/ui-components/src/components/toolbar.tsx b/packages/ui-components/src/components/toolbar.tsx index 9a75fe331ada..47bd3f7d8a9c 100644 --- a/packages/ui-components/src/components/toolbar.tsx +++ b/packages/ui-components/src/components/toolbar.tsx @@ -863,7 +863,6 @@ export function ToolbarButtonComponent( onMouseDown={handleMouseDown} onKeyDown={handleKeyDown} title={title} - scale="xsmall" > {(props.icon || props.iconClass) && ( .jp-TreeItem::part(content-region) { + margin-inline-start: calc(var(--design-unit) * 2px); +} + +/* Styles for tree item */ +.jp-TreeItem::part(expand-collapse-button) { + color: var(--jp-inverse-layout-color3); +} + +/* Tune hover for stealth buttons otherwise they won't stand out */ +.jp-TreeItem jp-button[appearance='stealth']:hover { + background: var(--tree-item-expand-collapse-hover); +} + +.jp-TreeItem[selected] jp-button[appearance='stealth']:hover { + background: var(--tree-item-expand-collapse-selected-hover); +} diff --git a/packages/workspaces-extension/src/sidebar.ts b/packages/workspaces-extension/src/sidebar.ts index 7d6ce26ae139..000d2d43e246 100644 --- a/packages/workspaces-extension/src/sidebar.ts +++ b/packages/workspaces-extension/src/sidebar.ts @@ -79,6 +79,7 @@ export const workspacesSidebar: JupyterFrontEndPlugin = { } managers.add({ name: trans.__('Workspaces'), + supportsMultipleViews: false, running: () => { return model.workspaces.map((workspace: Workspace.IWorkspace) => { return new WorkspaceItem(workspace); diff --git a/yarn.lock b/yarn.lock index eb9b8db30b32..a9e95ce89099 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2052,25 +2052,25 @@ __metadata: languageName: node linkType: hard -"@jupyter/react-components@npm:^0.16.3": - version: 0.16.3 - resolution: "@jupyter/react-components@npm:0.16.3" +"@jupyter/react-components@npm:^0.16.6": + version: 0.16.6 + resolution: "@jupyter/react-components@npm:0.16.6" dependencies: - "@jupyter/web-components": ^0.16.3 + "@jupyter/web-components": ^0.16.6 react: ">=17.0.0 <19.0.0" - checksum: 4eef89daacce6173162d61b42d18d3d9311e6728329dd0181199f50cfaaab6d8aadce6c4d290597c5096ac0940b83fc45495d3f59706d67c217b2395ee0ab4a3 + checksum: 4619ae8a41a987aa7529d8625d1b2f7921f977091e710f47a6c60190ef49c15ac9849289ffcf0327d18ef2d0493959c7aac7010a205f9328569301a248b6ecfb languageName: node linkType: hard -"@jupyter/web-components@npm:^0.16.3": - version: 0.16.3 - resolution: "@jupyter/web-components@npm:0.16.3" +"@jupyter/web-components@npm:^0.16.6": + version: 0.16.6 + resolution: "@jupyter/web-components@npm:0.16.6" dependencies: "@microsoft/fast-colors": ^5.3.1 "@microsoft/fast-element": ^1.12.0 "@microsoft/fast-foundation": ^2.49.4 "@microsoft/fast-web-utilities": ^5.4.1 - checksum: f47b87864c0d89ca1d86e05b206e10d059cc9f7d5b9e295c2e965a1f16d3bb84f49354668c40f9c79f72050cc3aae60ed5a91e254381ec86e25b02bec0480eab + checksum: 41a4a2b5bb2177cbb562c858c8327a868eab9205679dbc8f99105b1580882a2d14a6e2bd9202a4acdec539c44cee8d5a5b64f7fea6a03baa3ad2905b95a6538c languageName: node linkType: hard @@ -2796,7 +2796,7 @@ __metadata: dependencies: "@codemirror/state": ^6.4.1 "@codemirror/view": ^6.26.3 - "@jupyter/react-components": ^0.16.3 + "@jupyter/react-components": ^0.16.6 "@jupyter/ydoc": ^2.0.1 "@jupyterlab/application": ^4.3.0-alpha.2 "@jupyterlab/apputils": ^4.4.0-alpha.2 @@ -3013,7 +3013,7 @@ __metadata: version: 0.0.0-use.local resolution: "@jupyterlab/example-cell@workspace:examples/cell" dependencies: - "@jupyter/web-components": ^0.16.3 + "@jupyter/web-components": ^0.16.6 "@jupyter/ydoc": ^2.0.1 "@jupyterlab/application": ^4.3.0-alpha.2 "@jupyterlab/apputils": ^4.4.0-alpha.2 @@ -3042,7 +3042,7 @@ __metadata: version: 0.0.0-use.local resolution: "@jupyterlab/example-console@workspace:examples/console" dependencies: - "@jupyter/web-components": ^0.16.3 + "@jupyter/web-components": ^0.16.6 "@jupyter/ydoc": ^2.0.1 "@jupyterlab/application": ^4.3.0-alpha.2 "@jupyterlab/codemirror": ^4.3.0-alpha.2 @@ -3158,7 +3158,7 @@ __metadata: version: 0.0.0-use.local resolution: "@jupyterlab/example-filebrowser@workspace:examples/filebrowser" dependencies: - "@jupyter/web-components": ^0.16.3 + "@jupyter/web-components": ^0.16.6 "@jupyterlab/application": ^4.3.0-alpha.2 "@jupyterlab/apputils": ^4.4.0-alpha.2 "@jupyterlab/codemirror": ^4.3.0-alpha.2 @@ -3188,7 +3188,7 @@ __metadata: version: 0.0.0-use.local resolution: "@jupyterlab/example-notebook@workspace:examples/notebook" dependencies: - "@jupyter/web-components": ^0.16.3 + "@jupyter/web-components": ^0.16.6 "@jupyter/ydoc": ^2.0.1 "@jupyterlab/application": ^4.3.0-alpha.2 "@jupyterlab/apputils": ^4.4.0-alpha.2 @@ -3276,7 +3276,7 @@ __metadata: version: 0.0.0-use.local resolution: "@jupyterlab/example-terminal@workspace:examples/terminal" dependencies: - "@jupyter/web-components": ^0.16.3 + "@jupyter/web-components": ^0.16.6 "@jupyterlab/application": ^4.3.0-alpha.2 "@jupyterlab/coreutils": ^6.3.0-alpha.2 "@jupyterlab/services": ^7.3.0-alpha.2 @@ -4499,6 +4499,7 @@ __metadata: version: 0.0.0-use.local resolution: "@jupyterlab/running@workspace:packages/running" dependencies: + "@jupyter/react-components": ^0.16.6 "@jupyterlab/apputils": ^4.4.0-alpha.2 "@jupyterlab/statedb": ^4.3.0-alpha.2 "@jupyterlab/translation": ^4.3.0-alpha.2 @@ -4850,6 +4851,7 @@ __metadata: version: 0.0.0-use.local resolution: "@jupyterlab/toc@workspace:packages/toc" dependencies: + "@jupyter/react-components": ^0.16.6 "@jupyterlab/apputils": ^4.4.0-alpha.2 "@jupyterlab/coreutils": ^6.3.0-alpha.2 "@jupyterlab/docregistry": ^4.3.0-alpha.2 @@ -4957,8 +4959,8 @@ __metadata: version: 0.0.0-use.local resolution: "@jupyterlab/ui-components@workspace:packages/ui-components" dependencies: - "@jupyter/react-components": ^0.16.3 - "@jupyter/web-components": ^0.16.3 + "@jupyter/react-components": ^0.16.6 + "@jupyter/web-components": ^0.16.6 "@jupyterlab/coreutils": ^6.3.0-alpha.2 "@jupyterlab/observables": ^5.3.0-alpha.2 "@jupyterlab/rendermime-interfaces": ^3.11.0-alpha.2