[prev in list] [next in list] [prev in thread] [next in thread] List: qgis-developer Subject: Re: [QGIS-Developer] Using QgsMapCanvas in a python plugin dialog From: Tim Sutton <tim () kartoza ! com> Date: 2019-04-24 9:41:36 Message-ID: 31954B24-D667-4738-9B02-9F38B811BA38 () kartoza ! com [Download RAW message or body] [Attachment #2 (multipart/alternative)] Thanks so much for sharing your solution Eric - it makes the mailing list archives \ all the more useful! Regards Tim > On 24 Apr 2019, at 01:18, Eric Brelsford <ebrelsford@gmail.com> wrote: > > I believe I got this working by making the mapLayers a member of the dialog rather \ > than a variable created in show(). For anyone who is curious or runs into this in \ > the future, this commit worked for me: > https://github.com/ebrelsford/qgis-map-canvas-test/commit/3bf48449aaf8430d03dad58c54a80c227c2852c1 \ > <https://github.com/ebrelsford/qgis-map-canvas-test/commit/3bf48449aaf8430d03dad58c54a80c227c2852c1> > > eric > > On Mon, Apr 22, 2019 at 7:42 PM Eric Brelsford <ebrelsford@gmail.com \ > <mailto:ebrelsford@gmail.com>> wrote: I'm unsuccessfully trying to use a \ > QgsMapCanvas in a python plugin's dialog. > The canvas renders the map, which appears and disappears the first time I load the \ > dialog. The second time I load the dialog, the map is rendered and remains. \ > However, I've only accomplished this by using waitWhileRendering(), which I know is \ > incorrect. > I have posted a minimal plugin on GitHub \ > (https://github.com/ebrelsford/qgis-map-canvas-test/ \ > <https://github.com/ebrelsford/qgis-map-canvas-test/>) demonstrating this issue. It \ > was created using Plugin Builder. The relevant parts will be the .ui file: > https://github.com/ebrelsford/qgis-map-canvas-test/blob/master/map_canvas_test_dialog_base.ui#L15 \ > <https://github.com/ebrelsford/qgis-map-canvas-test/blob/master/map_canvas_test_dialog_base.ui#L15> > > and the dialog python file: > > https://github.com/ebrelsford/qgis-map-canvas-test/blob/master/map_canvas_test_dialog.py#L55 \ > <https://github.com/ebrelsford/qgis-map-canvas-test/blob/master/map_canvas_test_dialog.py#L55> > > Is anyone familiar with what I'm doing wrong here? Or does anyone know python \ > plugins using QgsMapCanvas in the dialog that I could use as a reference? I'd \ > appreciate any thoughts you have on it! > eric > _______________________________________________ > QGIS-Developer mailing list > QGIS-Developer@lists.osgeo.org > List info: https://lists.osgeo.org/mailman/listinfo/qgis-developer > Unsubscribe: https://lists.osgeo.org/mailman/listinfo/qgis-developer — Tim Sutton Co-founder: Kartoza Ex Project chair: QGIS.org Visit http://kartoza.com <http://kartoza.com/> to find out about open source: Desktop GIS programming services Geospatial web development GIS Training Consulting Services Skype: timlinux IRC: timlinux on #qgis at freenode.net I'd love to connect. Here's my calendar link <https://calendly.com/timlinux> to make \ finding time easy. [Attachment #5 (multipart/related)] [Attachment #7 (unknown)] <html><head><meta http-equiv="Content-Type" content="text/html; \ charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; \ line-break: after-white-space;" class="">Thanks so much for sharing your solution \ Eric - it makes the mailing list archives all the more useful!<div class=""><br \ class=""></div><div class="">Regards</div><div class=""><br class=""></div><div \ class="">Tim<br class=""><div><br class=""><blockquote type="cite" class=""><div \ class="">On 24 Apr 2019, at 01:18, Eric Brelsford <<a \ href="mailto:ebrelsford@gmail.com" class="">ebrelsford@gmail.com</a>> \ wrote:</div><br class="Apple-interchange-newline"><div class=""><div dir="ltr" \ class=""><div dir="ltr" class=""><div class="">I believe I got this working by making \ the mapLayers a member of the dialog rather than a variable created in show(). For \ anyone who is curious or runs into this in the future, this commit worked for \ me:</div><div class=""><br class=""></div><div class=""> <a \ href="https://github.com/ebrelsford/qgis-map-canvas-test/commit/3bf48449aaf8430d03dad58c54a80c227c2852c1" \ class="">https://github.com/ebrelsford/qgis-map-canvas-test/commit/3bf48449aaf8430d03dad58c54a80c227c2852c1</a></div><div \ class=""><br class=""></div><div class="">eric<br class=""></div></div></div><br \ class=""><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Mon, Apr 22, \ 2019 at 7:42 PM Eric Brelsford <<a href="mailto:ebrelsford@gmail.com" \ class="">ebrelsford@gmail.com</a>> wrote:<br class=""></div><blockquote \ class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid \ rgb(204,204,204);padding-left:1ex"><div dir="ltr" class=""><div dir="ltr" \ class=""><div dir="ltr" class=""><div dir="ltr" class=""><div class="">I'm \ unsuccessfully trying to use a QgsMapCanvas in a python plugin's dialog.</div><div \ class=""><br class=""></div><div class="">The canvas renders the map, which appears \ and disappears the first time I load the dialog. The second time I load the dialog, \ the map is rendered and remains. However, I've only accomplished this by using \ waitWhileRendering(), which I know is incorrect.<br class=""></div><div class=""><br \ class=""></div><div class="">I have posted a minimal plugin on GitHub (<a \ href="https://github.com/ebrelsford/qgis-map-canvas-test/" target="_blank" \ class="">https://github.com/ebrelsford/qgis-map-canvas-test/</a>) demonstrating this \ issue. It was created using Plugin Builder. The relevant parts will be the .ui \ file:</div><div class=""><br class=""></div><div class=""> <a \ href="https://github.com/ebrelsford/qgis-map-canvas-test/blob/master/map_canvas_test_dialog_base.ui#L15" \ target="_blank" class="">https://github.com/ebrelsford/qgis-map-canvas-test/blob/master/map_canvas_test_dialog_base.ui#L15</a></div><div \ class=""><br class=""></div><div class="">and the dialog python file:</div><div \ class=""><br class=""></div><div class=""> <a \ href="https://github.com/ebrelsford/qgis-map-canvas-test/blob/master/map_canvas_test_dialog.py#L55" \ target="_blank" class="">https://github.com/ebrelsford/qgis-map-canvas-test/blob/master/map_canvas_test_dialog.py#L55</a><br \ class=""></div><div class=""><br class=""></div><div class="">Is anyone familiar with \ what I'm doing wrong here? Or does anyone know python plugins using QgsMapCanvas in \ the dialog that I could use as a reference? I'd appreciate any thoughts you have on \ it!</div><div class=""><br class=""></div><div class="">eric<br \ class=""></div></div></div></div></div> </blockquote></div> _______________________________________________<br class="">QGIS-Developer mailing \ list<br class=""><a href="mailto:QGIS-Developer@lists.osgeo.org" \ class="">QGIS-Developer@lists.osgeo.org</a><br class="">List info: \ https://lists.osgeo.org/mailman/listinfo/qgis-developer<br class="">Unsubscribe: \ https://lists.osgeo.org/mailman/listinfo/qgis-developer</div></blockquote></div><br \ class=""><div class=""> <div style="color: rgb(0, 0, 0); font-family: Helvetica; \ font-size: 12px; font-style: normal; font-variant-ligatures: normal; \ font-variant-position: normal; font-variant-caps: normal; font-variant-numeric: \ normal; font-variant-alternates: normal; font-variant-east-asian: normal; \ font-weight: normal; letter-spacing: normal; text-indent: 0px; text-transform: none; \ white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; line-height: \ normal; text-align: center;" class=""><span>—</span></div><div style="color: rgb(0, \ 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; \ font-variant-ligatures: normal; font-variant-position: normal; font-variant-caps: \ normal; font-variant-numeric: normal; font-variant-alternates: normal; \ font-variant-east-asian: normal; letter-spacing: normal; text-indent: 0px; \ text-transform: none; white-space: normal; word-spacing: 0px; \ -webkit-text-stroke-width: 0px; line-height: normal; text-align: center;" \ class=""><div style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0); font-family: \ Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; \ font-weight: normal; letter-spacing: normal; orphans: auto; text-align: center; \ text-indent: 0px; text-transform: none; white-space: normal; widows: auto; \ word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: \ initial; text-decoration: none; font-variant-ligatures: normal; \ font-variant-position: normal; font-variant-numeric: normal; font-variant-alternates: \ normal; font-variant-east-asian: normal; margin: 0px; line-height: normal; \ -webkit-text-stroke-color: rgb(0, 0, 0); min-height: 14px;" class=""><br \ class=""></div><br class="Apple-interchange-newline" style="caret-color: rgb(0, 0, \ 0); color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; \ font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: \ auto; text-align: center; text-indent: 0px; text-transform: none; white-space: \ normal; widows: auto; word-spacing: 0px; -webkit-text-size-adjust: auto; \ -webkit-text-stroke-width: 0px; text-decoration: none;"><span style="caret-color: \ rgb(0, 0, 0); color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; \ font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: \ normal; orphans: auto; text-align: center; text-indent: 0px; text-transform: none; \ white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-size-adjust: auto; \ -webkit-text-stroke-width: 0px; text-decoration: \ none;"><span><span><span><span><span><span><span><span><span><span><span><img \ apple-inline="yes" id="1A766A46-674C-4D96-A471-8D12259DC66E" \ src="cid:1A5DF6DE-E302-4C28-BFBD-29663CBF1351" class=""></span><div \ style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0); font-family: Helvetica; \ font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; \ letter-spacing: normal; orphans: auto; text-align: center; text-indent: 0px; \ text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; \ -webkit-text-size-adjust: auto; -webkit-text-stroke-width: initial; text-decoration: \ none; font-variant-ligatures: normal; font-variant-position: normal; \ font-variant-numeric: normal; font-variant-alternates: normal; \ font-variant-east-asian: normal; margin: 0px; line-height: normal; \ -webkit-text-stroke-color: rgb(0, 0, 0); min-height: 14px;" class=""><br \ class="Apple-interchange-newline"><br class="Apple-interchange-newline"><br \ class="Apple-interchange-newline"><br class="Apple-interchange-newline"><br \ class=""></div><div style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0); \ font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: \ normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: \ center; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; \ word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: \ initial; text-decoration: none; font-variant-ligatures: normal; \ font-variant-position: normal; font-variant-numeric: normal; font-variant-alternates: \ normal; font-variant-east-asian: normal; margin: 0px; line-height: normal; \ -webkit-text-stroke-color: rgb(0, 0, 0); min-height: 14px;" class=""><br \ class=""></div><div style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0); \ font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: \ normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: \ center; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; \ word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: \ initial; text-decoration: none; font-variant-ligatures: normal; \ font-variant-position: normal; font-variant-numeric: normal; font-variant-alternates: \ normal; font-variant-east-asian: normal; margin: 0px; line-height: normal; \ -webkit-text-stroke-color: rgb(0, 0, 0);" class=""><b class="">Tim \ Sutton</b></div><div style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0); \ font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: \ normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: \ center; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; \ word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: \ initial; text-decoration: none; font-variant-ligatures: normal; \ font-variant-position: normal; font-variant-numeric: normal; font-variant-alternates: \ normal; font-variant-east-asian: normal; margin: 0px; line-height: normal; \ -webkit-text-stroke-color: rgb(0, 0, 0); min-height: 14px;" class=""><br \ class=""></div><div style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0); \ font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: \ normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: \ center; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; \ word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: \ initial; text-decoration: none; font-variant-ligatures: normal; \ font-variant-position: normal; font-variant-numeric: normal; font-variant-alternates: \ normal; font-variant-east-asian: normal; margin: 0px; line-height: normal; \ -webkit-text-stroke-color: rgb(0, 0, 0);" class=""><b class="">Co-founder:</b><span \ class="Apple-converted-space"> </span>Kartoza</div><div style="caret-color: \ rgb(0, 0, 0); color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; \ font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: \ normal; orphans: auto; text-align: center; text-indent: 0px; text-transform: none; \ white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-size-adjust: auto; \ -webkit-text-stroke-width: initial; text-decoration: none; font-variant-ligatures: \ normal; font-variant-position: normal; font-variant-numeric: normal; \ font-variant-alternates: normal; font-variant-east-asian: normal; margin: 0px; \ line-height: normal; -webkit-text-stroke-color: rgb(0, 0, 0);" class=""><b \ class="">Ex Project chair:</b><span style="font-weight: normal;" class=""><span \ class="Apple-converted-space"> </span><a href="http://QGIS.org" \ class="">QGIS.org</a></span></div><div style="caret-color: rgb(0, 0, 0); color: \ rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; \ font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: \ auto; text-align: center; text-indent: 0px; text-transform: none; white-space: \ normal; widows: auto; word-spacing: 0px; -webkit-text-size-adjust: auto; \ -webkit-text-stroke-width: initial; text-decoration: none; font-variant-ligatures: \ normal; font-variant-position: normal; font-variant-numeric: normal; \ font-variant-alternates: normal; font-variant-east-asian: normal; margin: 0px; \ line-height: normal; -webkit-text-stroke-color: rgb(0, 0, 0); min-height: 14px;" \ class=""><br class=""></div><div style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, \ 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: \ normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: \ center; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; \ word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: \ initial; text-decoration: none; font-variant-ligatures: normal; \ font-variant-position: normal; font-variant-numeric: normal; font-variant-alternates: \ normal; font-variant-east-asian: normal; margin: 0px; line-height: normal; \ -webkit-text-stroke-color: rgb(0, 0, 0);" class="">Visit <a \ href="http://kartoza.com/" class=""><span style="-webkit-text-stroke-color: rgb(71, \ 135, 255);" class="">http://kartoza.com</span></a> to find out about open \ source:</div><div style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0); font-family: \ Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; \ font-weight: normal; letter-spacing: normal; orphans: auto; text-align: center; \ text-indent: 0px; text-transform: none; white-space: normal; widows: auto; \ word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: \ initial; text-decoration: none; font-variant-ligatures: normal; \ font-variant-position: normal; font-variant-numeric: normal; font-variant-alternates: \ normal; font-variant-east-asian: normal; margin: 0px; line-height: normal; \ -webkit-text-stroke-color: rgb(0, 0, 0); min-height: 14px;" class=""><br \ class=""></div><div style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0); \ font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: \ normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: \ center; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; \ word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: \ initial; text-decoration: none; font-variant-ligatures: normal; \ font-variant-position: normal; font-variant-numeric: normal; font-variant-alternates: \ normal; font-variant-east-asian: normal; margin: 0px; line-height: normal; \ -webkit-text-stroke-color: rgb(0, 0, 0);" class="">Desktop GIS programming \ services</div><div style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0); \ font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: \ normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: \ center; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; \ word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: \ initial; text-decoration: none; font-variant-ligatures: normal; \ font-variant-position: normal; font-variant-numeric: normal; font-variant-alternates: \ normal; font-variant-east-asian: normal; margin: 0px; line-height: normal; \ -webkit-text-stroke-color: rgb(0, 0, 0);" class="">Geospatial web \ development</div><div style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0); \ font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: \ normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: \ center; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; \ word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: \ initial; text-decoration: none; font-variant-ligatures: normal; \ font-variant-position: normal; font-variant-numeric: normal; font-variant-alternates: \ normal; font-variant-east-asian: normal; margin: 0px; line-height: normal; \ -webkit-text-stroke-color: rgb(0, 0, 0);" class="">GIS Training</div><div \ style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0); font-family: Helvetica; \ font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; \ letter-spacing: normal; orphans: auto; text-align: center; text-indent: 0px; \ text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; \ -webkit-text-size-adjust: auto; -webkit-text-stroke-width: initial; text-decoration: \ none; font-variant-ligatures: normal; font-variant-position: normal; \ font-variant-numeric: normal; font-variant-alternates: normal; \ font-variant-east-asian: normal; margin: 0px; line-height: normal; \ -webkit-text-stroke-color: rgb(0, 0, 0);" class="">Consulting Services</div><div \ style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0); font-family: Helvetica; \ font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; \ letter-spacing: normal; orphans: auto; text-align: center; text-indent: 0px; \ text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; \ -webkit-text-size-adjust: auto; -webkit-text-stroke-width: initial; text-decoration: \ none; font-variant-ligatures: normal; font-variant-position: normal; \ font-variant-numeric: normal; font-variant-alternates: normal; \ font-variant-east-asian: normal; margin: 0px; line-height: normal; \ -webkit-text-stroke-color: rgb(0, 0, 0); min-height: 14px;" class=""><br \ class=""></div><div style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0); \ font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: \ normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: \ center; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; \ word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: \ initial; text-decoration: none; font-variant-ligatures: normal; \ font-variant-position: normal; font-variant-numeric: normal; font-variant-alternates: \ normal; font-variant-east-asian: normal; margin: 0px; line-height: normal; \ -webkit-text-stroke-color: rgb(0, 0, 0);" class=""><b class="">Skype</b>: \ timlinux </div><div style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0); \ font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: \ normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: \ center; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; \ word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: \ initial; text-decoration: none; font-variant-ligatures: normal; \ font-variant-position: normal; font-variant-numeric: normal; font-variant-alternates: \ normal; font-variant-east-asian: normal; margin: 0px; line-height: normal; \ -webkit-text-stroke-color: rgb(0, 0, 0);" class=""><b class="">IRC:</b><span \ class="Apple-converted-space"> </span>timlinux on #qgis at <a \ href="http://freenode.net" class="">freenode.net</a></div><div style="caret-color: \ rgb(0, 0, 0); color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; \ font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: \ normal; orphans: auto; text-align: center; text-indent: 0px; text-transform: none; \ white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-size-adjust: auto; \ -webkit-text-stroke-width: initial; text-decoration: none; font-variant-ligatures: \ normal; font-variant-position: normal; font-variant-numeric: normal; \ font-variant-alternates: normal; font-variant-east-asian: normal; margin: 0px; \ line-height: normal; -webkit-text-stroke-color: rgb(0, 0, 0);" class=""><br \ class=""></div><div style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0); \ </span></span></span></span></span></span></span></span></span></span></span></div> </div><br class=""></div></body></html> ["KartozaNewLogoThumbnail.jpg" (KartozaNewLogoThumbnail.jpg)] JFIF H H Exif MM * J R( i Z H H \ v 8Photoshop \ 3.0 8BIM 8BIM% ُ B~ \ v \ s !1"AQ2aq# \ BR3$b0rC4S@%c5sPD&T6dt `҄p'E7eUuÅFvGVf \ ()*89:HIJWXYZghijwxyz \ \ ! 1A0"2Q@3#aBqR4P$Cb5S%`Drc6p&ET' \ ()*789:FGHIJUVWXYZdefghijstuvwxyz \ C C JիVZjLZ \ jիVZjիTCz~7y˼իVZjիVT<\oy9e{jիVZjի]Stq}w{{jիVZjԕ4s>Kf3qsZjիVZ7Nw \ ^a}_l:Y]m^֭ZjիVw \gsVm N᭮ZjիV\߁> \ ;+x:K>] ןףQVZjթ&